1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python对Excel表格进行差异化筛选并高亮显示

python对Excel表格进行差异化筛选并高亮显示

时间:2021-01-17 23:24:55

相关推荐

python对Excel表格进行差异化筛选并高亮显示

python对Excel表格进行差异化筛选并高亮显示

最近公司在进行线下的不同阶段车辆的CAN信号通讯列表进行对比,基于此需求写此脚本,希望对有需求的人有帮助,有不懂得地方可以邮箱(zhaofu_xie@)联系我,我有空的时候予以解答,一起探讨进步!使用说明对比前与对比后的图片示意后续优化目标

最近公司在进行线下的不同阶段车辆的CAN信号通讯列表进行对比,基于此需求写此脚本,希望对有需求的人有帮助,有不懂得地方可以邮箱(zhaofu_xie@)联系我,我有空的时候予以解答,一起探讨进步!

使用说明

1.把需要对比的文件与生成的脚本文件放在同一个文件夹下

2.把需要对比的某文件1信号名称所在列放在test1文件的A列

3.把需要对比的某文件2信号名称所在列放在test2文件的A列

4.安装python以及openpyxl模块后双击compare excel two table

5.同路径下分别生成a,b两文件,两文件中内容的差异项会高亮显示

对比前与对比后的图片示意

对比前,任意在文件test,test2的A列随机输入字母。

test文件A列bbc,test1文件的d,b被加粗并用灰色底纹显示。(底纹颜色可在脚本中自行修改)

#Author:Xie Zhaofu # -*- coding: utf-8 -*-#导入模块 openpyxl import openpyxlfrom openpyxl.styles import PatternFillfrom openpyxl.styles import colorsfrom openpyxl.styles import Font, Color#读取excel文件#括号中的字符串为你要比较的两个excel的路径,注意用“/”wb_a = openpyxl.load_workbook(r'.\test.xlsx')wb_b = openpyxl.load_workbook(r'.\test2.xlsx')#定义一个方法来获取表格中某一列的内容,返回一个列表#在这里,我的表格中:IP是具有唯一性的,所以我用它来区分数据的差异,而IP这一列在我的表格中是第“G”列def getIP(wb):##sheet = wb.get_active_sheet()sheet = wb.activeip = []for cellobj in sheet['A']:ip.append(cellobj.value)return ip#获得ip列表ip_a = getIP(wb_a)ip_b = getIP(wb_b)#将两个列表转换成集合aa = set(ip_a)bb = set(ip_b)#找出两个列表的不同行,并转换成列表difference = list(aa ^ bb)#打印出列表中的元素#到这一步,两个表格中不同的数据已经被找出来了for i in difference:print (i)#将不同行高亮显示print ("开始第一张表" + "----" *10)##a = wb_a.get_active_sheet()['G']a = wb_a.active['A'] #A列for cellobj in a:if cellobj.value in difference:print (cellobj.value)cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)cellobj.fill = PatternFill("solid", fgColor="DDDDDD")print ("开始第二张表" + "----" *10)##b = wb_b.get_active_sheet()['G']b = wb_b.active['A'] #A列for cellobj in b:if cellobj.value in difference:print (cellobj.value)cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)cellobj.fill = PatternFill("solid", fgColor="DDDDDD")wb_a.save('D:/a.xlsx')wb_b.save('D:/b.xlsx')

后续优化目标

同事提出需要在excel文件筛选的基础上再进行比较显示。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。