python语言对比2个表格的内容

功能:用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}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44814698

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值