Python3,9行代码,对比两个Excel数据差异,并把差异结果重新保存。
【摘要】 区区几行代码, 就能把差异对比出来, 并且写在excel表中, 真棒。
1、引言
小云:鱼哥,还记得上次写的把数据库的查询结果写入到excel这个脚本不。
小鱼:嗯… 可以说不记得吗
小云:我猜你就记得。
小鱼:你…说…啥??
小云:我说,你记得这个脚本。
小鱼:啊? 你说去洗澡?
小云:鱼哥,别闹,正儿八经的。
小鱼:啊… 你说还要做SPA 。
小云:鱼哥,你这…
小鱼:啊… 你问我什么时间方便?
小云:鱼哥!!!!!!!!!!!!
小鱼:昂,咋了。
小云:你要是再帮我写个脚本,咱就去洗澡。
小鱼:哦,洗完澡还要吃烧烤??
小云:鱼哥,只要你能帮我写完脚本, 这都好说。
小鱼:那你说吧,啥脚本?
小云:我要把对比两个Excel表的数据,把不一样的给提示出来。
小鱼:就这…
小云:对啊, 就这。

2、代码实战
按照小云的要求, 就是把两个差异的excel数据库给对比出来。
由于咱们是高端人士,
所以,咱们进行一些优化。
- 把对比的差异数据高亮;
- 把差异数据 重新保存到excel表中;
代码示例
# -*- coding: utf-8 -*-
# @Time : 2022-11-20
# @Author : Carl_DJ
"""
实现功能:
1、对比两个excel表中的内容,
2、对差异的结果写入新的excel表中
"""
from openpyxl.styles import PatternFill
from openpyxl.styles import colors,Font
import openpyxl as vb
#读取 需要对比的excel表
workbook_a = vb.load_workbook(r'表1.xlsx')
workbook_b = vb.load_workbook(r'表2.xlsx')
#读取需要对比的sheet名
sheet_a = workbook_a['Sheet1']
sheet_b = workbook_b['Sheet1']
#遍历所有的行与列
maxrow = sheet_a.max_row
maxcolumn = sheet_b.max_column
#循环对比表格的所有单元格数据
for i in range(1,maxrow):
for j in range(1,maxcolumn):
cell_a = sheet_a.cell(i,j)
cell_b = sheet_b.cell(i,j)
#如果有差异数据,就标识出来(蓝色加粗字体,黄色填充),
if cell_a.value != cell_b.value:
cell_a.fill = PatternFill("solid",fgColor='FFFF00')
cell_a.font = Font(color=colors.BLUE,bold=True)
cell_b.fill = PatternFill("solid",fgColor='FFFF00')
cell_b.font = Font(color=colors.BLUE,bold=True)
#差异结果存入新的excel表中
workbook_a.save('表1_差异结果.xlsx')
workbook_b.save('表2_差异结果.xlsx')
print("执行对比完成")
运行结果

3、总结
看到这里,今天的分享就要结束了。
今天主要通过 使用的是openpyx模块,进行excel数据的对比。
如果你对openpyx模块不太了解, 那直接百度搜索"openpyx" 即可。
网上的中文教程也很多,我就不唠叨了。
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO 博客专家;
- 51认证讲师;
- 金牌面试官&面试培训师;
关注我,带你学习更多更有趣的Python知识。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)