栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实现VLOOKUP功能:核对两个Excel表数据,将查询列的对应值填入另一个Excel表

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实现VLOOKUP功能:核对两个Excel表数据,将查询列的对应值填入另一个Excel表

简单介绍

接上一篇文章的内容,每一句话都有对应的汇报人,设会议记录表为A,员工信息表为B,当在会议记录表A表中填入汇报人的名字时,能够根据名字在员工信息表B中查到这个人所在的部门,并填到会议记录表A中。

完整代码
import xlrd
import xlwt

#创建excel文件
book = xlwt.Workbook(encoding='utf-8',style_compression=0)
# 创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。
sheet = book.add_sheet('Output', cell_overwrite_ok=True)
# 向表中添加数据标题 
sheet.write(0, 0, '姓名')  # 其中的'0-行, 0-列'指定表中的单元,'姓名'是向0行0列这个单元格写入的内容
sheet.write(0, 1, '部门')
sheet.write(0, 2, '上周的KPI')  
sheet.write(0, 3, '没达标的原因') 
sheet.write(0, 4, '遇到的问题') 
sheet.write(0, 5, '解决方法')

#----------------------------------以上是上一篇文章用到的创建新的Excel的代码,目前没尝试过直接打开ExcelB,把A中对应的内容复制进去后再关闭B。

file1 = "C:\Users\Z21070567\Desktop\员工信息表.xlsx"		#员工信息表B所在的路径
wb1 = xlrd.open_workbook(filename=file1)	#打开员工信息表B
hid_index1 = 0		# 表B要匹配的列索引(与会议记录表相同的部分,即姓名)
target_index1 = 1		# 表B目标数据列索引(要匹配并填入表A的数据,即部门)
sheet1 = wb1.sheet_by_index(0)		# 表B的sheet
rowNum1 = sheet1.nrows		# 表B的sheet的总行数
colNum1 = sheet1.ncols		# 表B的sheet的总列数

file2 = "F:\Microsoft VS Code\Output.xls"		#会议记录表A所在的路径
wb2 = xlrd.open_workbook(filename=file2)		#打开会议记录表A
hid_index2 = 0		# 表A要匹配的列索引(与员工信息表B相同的部分,即姓名)
target_index2 = 5		# 员工信息表B目标数据列索引(匹配后放入的位置)
sheet2 = wb2.sheet_by_index(0)# 表A的sheet,通过索引获取表格
rowNum2 = sheet2.nrows		# 表A的sheet的总行数
colNum2 = sheet2.ncols		# 表A的sheet的总列数

for index2 in range(0,rowNum2):
	for col_index in range(0,colNum2):			# 遍历会议记录表A的每一行每一列
		sheet.write(index2,col_index,sheet2.cell_value(index2,col_index))		# 在遍历列过程中,如果碰到目标数据列索引.即需要补充的字段:部门,则进行遍历表B,判断的姓名索引匹配

		if col_index == target_index2:
			for index1 in range(1,rowNum1):
				hid1 = sheet1.cell_value(index1,hid_index1)
				if hid1 == sheet2.cell_value(index2,hid_index2):		# 如果两个表的姓名相同则把员工信息表B的单元内容设置到会议记录表A对应的单元格
					
					sheet.write(index2,col_index,sheet1.cell_value(index1,target_index1))
book.save('Output.xls') 
代码解析

会议记录表A:

员工信息表B:

file1 = "C:\Users\Z21070567\Desktop\员工信息表.xlsx"		#员工信息表B所在的路径

复制Excel表所在的路径时,要将【】更改为【 】

hid_index1 = 0		# 表B要匹配的列索引(与会议记录表相同的部分,即姓名)
target_index1 = 1		# 表B目标数据列索引(要匹配并填入表A的数据,即部门)

Python中,可以理解为从左到右从0开始数起,姓名所在的列为第0列,部门所在的列为第1列。
后面也没啥好说的了,照着改,运行后得到的结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号