功能:用python语言对比2个表格的内容哪里有不一致的地方,如果发现有不一致的地方则加粗标记颜色
逻辑描述
# -*- coding: utf-8 -*-
"""
Created on Sun Jul 21 22:31:45 2024
@author: chenyao
功能:对比2个表格的内容哪里有不一致的地方,如果发现有不一致的地方则加粗标记颜色。
"""
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font
import openpyxl as pxl
from datetime import datetime
print("读取对比表格1")
# 加载data1.xlsx文件
workbook_1 = pxl.load_workbook(r'D:/临时文件-可删除/附件.xlsx')
print("读取对比表格2")
# 加载data2.xlsx文件
workbook_2 = pxl.load_workbook(r'D:/临时文件-可删除/附件2-1.xlsx')
print("读取对比表格1的sheet1")
# 选择Sheet1对象
workbook_1_sheet_1 = workbook_1['Sheet1']
print("读取对比表格2的sheet1")
# 选择Sheet2对象
workbook_2_sheet_1 = workbook_2['Sheet1']
# 第一段逻辑:对比
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"开始进行对比计算,开始时间是: {current_time}")
# 进行行、列运算
max_row = workbook_1_sheet_1.max_row if workbook_1_sheet_1.max_row > workbook_2_sheet_1.max_row else workbook_2_sheet_1.max_row
max_column = workbook_1_sheet_1.max_column if workbook_1_sheet_1.max_column > workbook_2_sheet_1.max_column else workbook_2_sheet_1.max_column
for i in range(1, (max_row + 1)):
for j in range(1, (max_column + 1)):
cell_1 = workbook_1_sheet_1.cell(i, j)
cell_2 = workbook_2_sheet_1.cell(i, j)
if cell_1.value != cell_2.value:
cell_1.fill = PatternFill("solid", fgColor='FFFF00')
cell_1.font = Font(color=colors.BLACK, bold=True)
cell_2.fill = PatternFill("solid", fgColor='FFFF00')
cell_2.font = Font(color=colors.BLACK, bold=True)
current_time2 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"结束进行对比计算,结束时间是: {current_time2}")
# 第二段逻辑:保存
current_time3 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"新建表格1对比结果时间是: {current_time3}")
# 标注完成的文件保存为data3.xlsx文件
workbook_1.save('D:/临时文件-可删除/文档1.xlsx')
current_time4 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"新建表格1对比结果结束时间是: {current_time4}")
# 标注完成的文件保存为data4.xlsx文件
workbook_2.save('D:/临时文件-可删除/文档2.xlsx')
current_time5 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"对比结果结束时间是: {current_time5}")