前言:
工作中有时候会需要比较2个表格里的内容是否一致,或者哪里不同,如果单纯的使用人眼扫描的话,特别花时间不说,如果内容过多的话,眼睛估计都要瞎了~
这时候就会想到:是不是可以写个工具进行比较差异,并且标记出来呢!
正文:
这里会用的库是openpyxl,因为这是个很强大的库,一直都在使用他,也可以使用其他的库,总的来说大体上是类似的,,如果本地没有这个库的话可以在线安装---->
安装openpyxl库
pip install openpyxl
import openpyxl from openpyxl.styles import colors from openpyxl.styles import PatternFill from openpyxl.styles import Font #这里我分别直接读取了已经存在的表格 wb1=openpyxl.load_workbook(r"data_1.xlsx") wb2=openpyxl.load_workbook(r"data_2.xlsx") #再分别读取需要对比的表单,这里2个表格的表单的名字一样 wb_sheet1=wb1["菜单目录"] wb_sheet2=wb2["菜单目录"] #获取到2个表单数据最大行数 max_row=wb_sheet1.max_row if wb_sheet1.max_row > wb_sheet2.max_row else wb_sheet2.max_row #获取到2个表单数据最大列数 max_column = wb_sheet1.max_column if wb_sheet1.max_column > wb_sheet2.max_column else wb_sheet2.max_column #遍历每一行表格坐标 for i in range(1, (max_row + 1)): #遍历每一列表格左边 for j in range(1, (max_column + 1)): #提取每个表格的数据 cell_1 = wb_sheet1.cell(i, j) cell_2 = wb_sheet2.cell(i, j) #如果相同单元格数据不相等,则进行标记 if cell_1.value != cell_2.value: #单元格填充为黄色 cell_1.fill = PatternFill("solid", fgColor='FFFF00') #字体为蓝色 cell_1.font = Font(color=colors.BLUE, bold=True) cell_2.fill = PatternFill("solid", fgColor='FFFF00') cell_2.font = Font(color=colors.BLUE, bold=True) #将对比的结果分别输出到对应的新表格中 wb1.save('data_3.xlsx') wb2.save('data_4.xlsx') print("对比完成")
需要对比的表格data_1.xlsx内容(这里展示开始有差异的地方)
需要对比的表格data_2.xlsx内容(这里展示开始有差异的地方)
结果:
进行对比过后,分别输出保存到新的表格中
data_1---->data_3:
data_2---->data_4 :
对比完成后,两个表格有差异的地方一下子就可以发现了