开发者社区> Carl_奕然> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Python3,9行代码,对比两个Excel数据差异,并把差异结果重新保存。

简介: 我不会承认,这是专为懒人设计的对比脚本。
+关注继续查看

1、引言

小屌丝:鱼哥,还记得上次写的把数据库的查询结果写入到excel这个脚本不。

小鱼:嗯… 可以说不记得吗

小屌丝:我猜你就记得。

小鱼:你…说…啥??

小屌丝:我说,你记得这个脚本。

小鱼:啊? 你说去洗澡?

小屌丝:鱼哥,别闹,正儿八经的。

小鱼:啊… 你说还要做SPA 。

小屌丝:鱼哥,你这…

小鱼:啊… 你问我什么时间方便?

小屌丝:鱼哥!!!!!!!!!!!!

小鱼:昂,咋了。

小屌丝:你要是再帮我写个脚本,咱就去洗澡。

小鱼:哦,洗完澡还要吃烧烤??

小屌丝:鱼哥,只要你能帮我写完脚本, 这都好说。

小鱼:那你说吧,啥脚本?

小屌丝:我要把对比两个Excel表的数据,把不一样的给提示出来。

小鱼:就这…

小屌丝:对啊, 就这。

an.jpg

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("执行对比完成")

运行结果

无标题.png

3、总结

看到这里,今天的分享就要结束了。

今天主要通过 使用的是openpyx模块,进行excel数据的对比。

如果你对openpyx模块不太了解, 那直接百度搜索"openpyx" 即可。

网上的中文教程也很多,我就不唠叨了。

我是奕然

关注我,带你学习更多更有趣的Python知识。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python 读取 Excel 中符合特定条件的数据,并写入新的表格
Python 读取 Excel 中符合特定条件的数据,并写入新的表格
147 0
Python3写入数据到csv文件中编码问题
本人在用python导出数据到csv的过程中,发现python3.5写中文字符到csv报错, 错误信息UnicodeEncodeError: 'gbk' codec can't encode character '\u25ba' in position 494: illegal multibyte sequence 这和python2.的解决方法是不一样的,百度之后总结出来供大家互相学习。
1537 0
+关注
Carl_奕然
CSDN博客专家,金牌面试官,资深测试开发专家,51讲师,职场面试培训及规划。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
大批量处理excel文件到ODPS中方案
立即下载
4个迭代,从批量交...1573957773.pdf
立即下载
JS 语言在引擎级别的执行过程
立即下载