详解Python如何实现对比两个Excel数据差异
作者:Carl_奕然 时间:2023-06-14 00:37:10
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" 即可。
来源:https://blog.csdn.net/wuyoudeyuer/article/details/127994709
标签:Python,Excel,数据,差异
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
php中instanceof 与 is_a()区别分析
2023-11-19 06:04:56
Vuex实现简单购物车
2024-05-08 10:43:45
![](https://img.aspxhome.com/file/2023/5/127405_0s.jpg)
JS实现水平遍历和嵌套递归操作示例
2024-04-22 12:48:01
python 监控服务器是否有人远程登录(详细思路+代码)
2022-05-16 04:08:26
![](https://img.aspxhome.com/file/2023/8/109628_0s.png)
typecho统计博客所有文章的字数实例详解
2023-06-13 07:52:36
![](https://img.aspxhome.com/file/2023/1/55521_0s.png)
Oracle数据库集复制方法浅议
2023-07-16 16:33:49
PHP simplexml_import_dom()函数讲解
2023-06-09 19:18:30
![](https://img.aspxhome.com/file/2023/3/55403_0s.png)
关于pyinstaller 打包多个py文件的问题
2022-01-19 17:49:10
![](https://img.aspxhome.com/file/2023/2/68912_0s.jpg)
DIV与Table布局在大型网站的可用性比较
2007-10-08 12:46:00
![](https://img.aspxhome.com/file/UploadPic/200710/8/2007108125233616s.jpg)
基于Tensorflow一维卷积用法详解
2022-12-31 20:04:18
![](https://img.aspxhome.com/file/2023/3/111923_0s.jpg)
Mysql常用运算符与函数汇总
2024-01-17 21:36:02
python双向链表原理与实现方法详解
2021-03-06 05:29:39
Python 多线程之threading 模块的使用
2022-09-01 23:53:27
Python中文分词实现方法(安装pymmseg)
2023-12-06 02:43:41
Google的YSlow——Page Speed(附插件下载)
2009-09-27 12:40:00
![](https://img.aspxhome.com/file/UploadPic/20099/27/page_speed_01-95s.gif)
python通过socket实现多个连接并实现ssh功能详解
2022-06-08 20:50:56
![](https://img.aspxhome.com/file/2023/4/135334_0s.png)
MySQL数据库基于sysbench实现OLTP基准测试
2024-01-28 11:07:14
![](https://img.aspxhome.com/file/2023/9/124559_0s.png)
五种提高 SQL 性能的方法
2008-05-16 10:40:00
python使用opencv实现马赛克效果示例
2022-10-16 04:23:30
![](https://img.aspxhome.com/file/2023/8/67908_0s.jpg)
python实现数字炸弹游戏程序
2021-09-29 18:44:24
![](https://img.aspxhome.com/file/2023/0/135020_0s.jpg)