openpyxl模块---------------实现Excel的vlookup匹配功能

发布时间 2023-07-26 17:51:23作者: 往事已成昨天

代码上:

import numpy as np
import pandas as pd
import os
import openpyxl
from openpyxl import Workbook

#在python中实现excel里的Vlookup函数功能,分三步走
#创建一个文件夹以存放操作后的文件
os.mkdir(r'result')
#创建工作簿以盛放操作结果表
wb=Workbook()
wb.save(r'result/匹配结果.xlsx')

#第一步:读取指定数据,注意工作表名称‘Sheet1’的首字母是大写状态
df_source=pd.read_excel(r'13.xlsx',header=0,sheet_name='Sheet1')
df_target=pd.read_excel(r'13.xlsx',header=0,sheet_name='Sheet2')

#第二步,设置共有索引
df_source.set_index('物料名称')
df_target.set_index('物料名称')

#第三步,update方法实现目标
df_target.update(df_source)

#导出形成工作表
with pd.ExcelWriter(r'result/匹配结果.xlsx',mode='a') as writer:
df_target.to_excel(writer,sheet_name='匹配结果')


################################################################
实现效果如下:
元数据:

 

 

 注意事项:

 原来加了,skipfooter=1,匹配少了最后一行,去掉这个参数,就能全部匹配到所有数据了

第一步:分别读取数据

#第一步:读取指定数据,注意工作表名称‘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)

这三步是目标实现的关键步骤,思路清晰易懂,操作简单。