详解Python如何实现对比两个Excel数据差异
作者:Carl_奕然 发布时间:2023-06-14 00:37:10
标签:Python,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" 即可。
来源:https://blog.csdn.net/wuyoudeyuer/article/details/127994709


猜你喜欢
- 废话就不多说了,直接上内容。<form action="/home/search" method="ge
- 本文为大家分享了macOS下mysql 8.0.16 安装配置教程,供大家参考,具体内容如下1、安装程序下载打开MySQL 官网选择 DOW
- 前言Python 的字典有好多个名称("映射"、"哈希"、"散列"或者"
- 元素的CSS样式,除了包括内联的(即通过style属性加上的)样式定义外,还有页面嵌入的css和外部引入的css两种方式。但在JS中通过el
- 本文主要介绍了go redis之redigo的使用,分享给大家,具体如下:安装go-redis 三方库为我们封装了很多函数来执行 Redis
- 一、修改表格数据类型 DataFrame 列的顺序实战场景:Pandas 如何修改表格数据类型 DataFrame 列的顺序1.1
- 新建py文件,在里面写入Python代码,代码的功能是打印10次“Hello!”,将代码文件保存到桌面上:在命令行中运行Python脚本,并
- 在Linux下C连接MySQL出现问题如下:编译成功后,运行程序,出现./connect: error while loading shar
- 本文介绍了python+opencv像素的加减和加权操作的实现,分享给大家。# 目标:# 1、在图像上进行算术操作,如加减以及按位操作# 2
- 接触了一下docker和k8s,感觉是非常不错的东西。能够方便的部署线上环境,而且还能够更好的利用机器的资源,感觉是以后的大趋势。最近刚好有
- 一、前言mysql5.7版本开始支持JSON类型字段,本文详细介绍json_extract函数如何获取mysql中的JSON类型数据json
- 前言众所周知vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的。相对来
- 文/图 安全天使·angel[BST]前言我的《SQL Injection with MySQL》(《黑客防线》7月的专题)已经对MySQL
- 一、在Yii中实现乐观锁乐观锁(optimistic locking)表现出大胆、务实的态度。使用乐观锁的前提是, 实际应用当中,发生冲突的
- 1.作用域在python中,作用域分为两种:全局作用域和局部作用域。全局作用域是定义在文件级别的变量,函数名。而局部作用域,则是定义函数内部
- 这篇文章主要介绍了Python爬虫解析网页的4种方式实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 现在写一篇博客总是喜欢先谈需求或者本内容的应用场景,是的,如果写出来的东西没有任何应用价值,确实也没有实际意义。今天的最早的需求是来自于如何
- 在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库。就本人而言,我更喜欢使用pya
- 对一个列表list而言,进行排序是很简单的。正序排序(从小到大)用list.sort() 倒序排序(从大到小)用list.sort
- 目录原理先行实践篇完整代码原理先行作为一个资深的小说爱好者,国内很多小说网站如出一辙,什么 🖊*阁啊等等,大都是 get 请求返回 html