我是靠谱客的博主 文艺茉莉,最近开发中收集的这篇文章主要介绍python两个excel字段模糊匹配_Python对两个Excel操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介

现在有个需求,我们根据需要 data.xlsx 中某些单元格的内容来查找 find.xlsx 中的某些內容。

数据内容(为了数据安全,所有数据均已模糊处理)

data.xlsx内容:

find.xlsx内容:

任务目的

从data.xlsx中获取姓名,学号字段,然后在find.xlsx中根据姓名查找000字段,将匹配到的000字段,姓名和学号字段写入保存到新文件中。

思路过程

核心模块:openpyxl

读取data.xlsx文件,然后遍历所有行,将姓名和学号保存到字典1中。

读取find.xlsx文件,遍历所有行,将姓名和000保存到字典2中。

创建新xlsx文件,遍历字典1,如果name也在字典2中,则保存到新xlsx文件中。

实现代码

import openpyxl

# 加载第一个Excel

wb1 = openpyxl.load_workbook("data.xlsx") # 加载Excel文件

ws1 = wb1[wb1.sheetnames[0]] # 获取第一张数据表

# 加载第二个Excel

wb2 = openpyxl.load_workbook("find.xlsx") # 加载Excel文件

ws2 = wb2[wb2.sheetnames[0]] # 获取第一张数据表

# 表名.cell(row=r,column=c).value 获取指定单元格内容

sno_d = {} #字典1,key:name;value:sno

id_d = {} #字典2,key:name;value:id

# 1.从表1中获取所有数据,保存到字典中

for r in range(3,ws1.max_row):

# 获取数据

name = ws1.cell(row=r, column=3).value

sno = ws1.cell(row=r, column=4).value

# 保存数据到字典1中

sno_d[name] = sno

# 2.遍历表2,寻找对应的id

for r in range(4,ws2.max_row):

# 获取数据

name = ws2.cell(row=r, column=3).value

ID = ws2.cell(row=r, column=2).value

# 保存数据到字典1中

id_d[name] = ID

# 3.写数据到Excel文件中

save_excel = openpyxl.Workbook()

save_sheet = save_excel.active # 获取当前活动的表,就是第一张表

save_sheet['A1'] = "姓名"

save_sheet['B1'] = "学号"

save_sheet['C1'] = "000"

# 写入数据

r = 2

# 遍历第一个字典

for name in sno_d:

# 判断是否在第二个字典中

if name in id_d:

save_sheet.cell(row=r, column=1).value = name

save_sheet.cell(row=r, column=2).value = str(sno_d[name])

ID = id_d[name]

save_sheet.cell(row=r, column=3).value = ID[-6:-1]+ID[-1]

print(f"正在保存第{r-1}条数据...姓名为:{name}")

r = r + 1

save_excel.save("学号对应表.xlsx")

print("保存完成!")

运行截图

数据文件下载;

最后

以上就是文艺茉莉为你收集整理的python两个excel字段模糊匹配_Python对两个Excel操作的全部内容,希望文章能够帮你解决python两个excel字段模糊匹配_Python对两个Excel操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部