openpyxl 查找功能

from openpyxl import load_workbook

wb = load_workbook('ff1.xlsx')
ws = wb['表格1']
ws1 = wb['Sheet2']


xy = ws.max_row
xy1 = ws1.max_row
for i in range(2,xy+1):
	
	dh = ws['B%s' %i].value
	# print(dh)
	for r in range(2,xy1+1):
		dh1 = ws1['A%s' %r].value
		wh = ws1['B%s' %r].value
		if str(dh) == str(dh1) and wh != '':
			print('第',i,'条,dh是:',dh,'dh1是:',dh1,'wh',wh)
			ws['J%s' %r].value = wh
		else:
			pass
			#print('dh:',dh)
wb.save('1.xlsx')

这个速度太慢

还是用excel的vlookup函数吧,这个速度快

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在Python中,如果想要使用openpyxl库实现vlookup功能,可以通过以下步骤实现: 1. 导入openpyxl库 ```python import openpyxl ``` 2. 打开Excel文件并获取工作表 ```python # 打开Excel文件 workbook = openpyxl.load_workbook('example.xlsx') # 获取工作表 worksheet = workbook['Sheet1'] ``` 3. 遍历需要进行vlookup的列,获取对应的值并写入新的列 ```python # 遍历需要进行vlookup的列 for row in worksheet.iter_rows(min_row=2, min_col=1, max_col=2): # 获取key列和lookup列的值 key_value = row[0].value lookup_value = None # 在对应的表格中查找对应的值 for lookup_row in lookup_worksheet.iter_rows(min_row=2, min_col=1, max_col=2): if lookup_row[0].value == key_value: lookup_value = lookup_row[1].value break # 将查找到的值写入新的列 if lookup_value is not None: new_column_cell = row[1] new_column_cell.value = lookup_value ``` 其中,"example.xlsx"是需要进行vlookup的Excel文件,"Sheet1"是需要进行vlookup的工作表名称,"min_row"、"min_col"、"max_col"是需要进行vlookup的数据范围。"lookup_worksheet"是需要进行vlookup的表格。 完整代码示例如下: ```python import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('example.xlsx') # 获取需要进行vlookup的工作表 worksheet = workbook['Sheet1'] # 获取需要进行vlookup的表格 lookup_worksheet = workbook['Sheet2'] # 遍历需要进行vlookup的列 for row in worksheet.iter_rows(min_row=2, min_col=1, max_col=2): # 获取key列和lookup列的值 key_value = row[0].value lookup_value = None # 在对应的表格中查找对应的值 for lookup_row in lookup_worksheet.iter_rows(min_row=2, min_col=1, max_col=2): if lookup_row[0].value == key_value: lookup_value = lookup_row[1].value break # 将查找到的值写入新的列 if lookup_value is not None: new_column_cell = row[1] new_column_cell.value = lookup_value # 保存Excel文件 workbook.save('example.xlsx') ``` 需要注意的是,如果需要进行vlookup的数据量较大,建议先将需要进行vlookup的表格读入内存中,避免重复读取和搜索。同时,在进行vlookup时也需要注意数据类型的匹配,确保key列和lookup列的数据类型一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值