Python实现两个Excel表格数据比对

Python实现两个Excel表格数据比对

代码如下:

# 从openpyxl导入PatternFill类
from openpyxl.styles import PatternFill
# 从openpyxl导入colors类
from openpyxl.styles import colors
# 从openpyxl导入Font类
from openpyxl.styles import Font
# 导入openpyxl模块并将其重命名为pxl
import openpyxl as pxl

# 下面使用openpyxl模块的load_workbook函数读取到Excel文件对象,并提取两个Excel文件中'Sheet1'工作表作为源数据。

workbook_1 = pxl.load_workbook(r'D:\python\数据对比\ar_reconciliation_collect.xlsx')

workbook_2 = pxl.load_workbook(r'D:\python\数据对比\ar_reconciliation_collect20230321.xlsx')

# 读取表1的sheet1内容

workbook_1_sheet_1 = workbook_1['ar_reconciliation_collect']

# 读取表2的sheet1内容

workbook_2_sheet_1 = workbook_2['ar_reconciliation_collect2023']

# 提取两个工作表中的最大行和最大列,这样即使两个表的行数和列数不一致也能完全找出不同的单元格数据。
# 确定最大行
if workbook_1_sheet_1.max_row > workbook_2_sheet_1.max_row:
    max_row = workbook_1_sheet_1.max_row
else:
    max_row = workbook_2_sheet_1.max_row
# 确定最大列
if workbook_1_sheet_1.max_column > workbook_2_sheet_1.max_column:
    max_column = workbook_1_sheet_1.max_column
else:
    max_column = workbook_2_sheet_1.max_column

# 使用for循环的方式分别遍历行数据和列数据,然后判断对应单元格的数据值是否相等,若是不相等则打上标记。

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)

# 最后将对比处理完成后的工作表对象使用save函数进行保存即可。

# 将workbook_1对象保存到data3.xlsx文件中
workbook_1.save(r'D:\python\数据对比\data3.xlsx')

# 将workbook_2对象保存到data4.xlsx文件中。
workbook_2.save(r'D:\python\数据对比\data4.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值