本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于艾然飞翔,作者宁晨
前言
在exce中vlookup函数功能非常强大、方便;但总是手动操作,毕竟还是不高效。在VBA里把一系列的手动操作变为一键操作实现目标,是不错的选择。如果你也会使用python的话,会发现目标实现起来,更简单。
那么使用python操作excel时怎么实现这个功能?
数据源位置为Sheet1工作表:

要在另一个工作表Sheet2里查询到上表里的后四列信息:


实现起来很简单,分三步走:
第一步:分别读取数据
#第一步:读取指定数据,注意工作表名称‘Sheet1’的首字母是大写状态 df_source=pd.read_excel(r'/Users/dxn/Desktop/vlookup.xlsx',header=0,sheet_name='Sheet1',skipfooter=1) df_target=pd.read_excel(r'/Users/dxn/Desktop/vlookup.xlsx',header=0,sheet_name='Sheet2')
第二步:设置两表共享有相同的索引列
#第二步,设置共有索引 df_source.set_index('物料名称') df_target.set_index('物料名称')
第三步:update方法完成目标
#第三步,update方法实现目标 df_target.update(df_source)
这三步是目标实现的关键步骤,思路清晰易懂,操作简单。
完整代码如下:
import numpy as np import pandas as pd import os import openpyxl from openpyxl import Workbook #在python中实现excel里的Vlookup函数功能,分三步走 #创建一个文件夹以存放操作后的文件 os.mkdir(r'/Users/dxn/Desktop/result') #创建工作簿以盛放操作结果表 wb=Workbook() wb.save(r'/Users/dxn/Desktop/result/匹配结果.xlsx') #第一步:读取指定数据,注意工作表名称‘Sheet1’的首字母是大写状态 df_source=pd.read_excel(r'/Users/dxn/Desktop/vlookup.xlsx',header=0,sheet_name='Sheet1',skipfooter=1) df_target=pd.read_excel(r'/Users/dxn/Desktop/vlookup.xlsx',header=0,sheet_name='Sheet2') #第二步,设置共有索引 df_source.set_index('物料名称') df_target.set_index('物料名称') #第三步,update方法实现目标 df_target.update(df_source) #导出形成工作表 with pd.ExcelWriter(r'/Users/dxn/Desktop/result/匹配结果.xlsx',mode='a') as writer: df_target.to_excel(writer,sheet_name='匹配结果')