Python实现对比两个Excel数据内容并标记出不同

 更新时间:2022年12月26日 15:16:41   作者:Sir 老王  
日常工作中需要对比两个Excel工作表中的数据差异是很不方便的,使用python来做就比较简单了!本文为大家介绍了python实现对比两个Excel的数据内容并标记出不同数据的示例代码,需要的可以参考一下

日常工作中需要对比两个Excel工作表中的数据差异是很不方便的,使用python来做就比较简单了!

我们的思路是通过读取两个Excel的数据,采用逐个遍历对比同一个位置的两个单元格如果不是相同的则打上对应的标记,处理完成后再另存为Excel文件。

既然是对每个单元格的操作那肯定离不开openpyxl模块,没有的话使用pip的方式安装一下即可。

pip install openpyxl

接着我们准备读取两个需要对比的Excel数据内容,这里准备的是data1.xlsx和data2.xlsx作为源数据使用。

然后,将openpyxl模块及其所需要的样式填充/文字设置相关的对象导入。

# It imports the PatternFill class from the openpyxl.styles module.
from openpyxl.styles import PatternFill

# It imports the colors class from the openpyxl.styles module.
from openpyxl.styles import colors

# It imports the Font class from the openpyxl.styles module.
from openpyxl.styles import Font

# It imports the openpyxl module and renames it as pxl.
import openpyxl as pxl

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

# It loads the data1.xlsx file and assigns it to the workbook_1 variable.
workbook_1 = pxl.load_workbook(r'data1.xlsx')

# It loads the data2.xlsx file and assigns it to the workbook_2 variable.
workbook_2 = pxl.load_workbook(r'data2.xlsx')

# Assigning the Sheet1 object to the workbook_1_sheet_1 variable.
workbook_1_sheet_1 = workbook_1['Sheet1']

# It assigns the Sheet1 object to the workbook_2_sheet_1 variable.
workbook_2_sheet_1 = workbook_2['Sheet1']

提取两个工作表中的最大行和最大列,这样即使两个表的行数和列数不一致也能完全找出不同的单元格数据。

# A ternary operator. It is equivalent to:
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

# A ternary operator. It is equivalent to:
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循环的方式分别遍历行数据和列数据,然后判断对应单元格的数据值是否相等,若是不相等则打上标记。

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函数进行保存即可。

# It saves the workbook_1 object to the data3.xlsx file.
workbook_1.save('data3.xlsx')

# It saves the workbook_2 object to the data4.xlsx file.
workbook_2.save('data4.xlsx')

下面是通过对比差异化处理后的data3.xlsx和data4.xlsx的工作表数据。

从结果来看,即使是两个表的数据行数不一致也能对比出差异数据并打上了标记。

到此这篇关于Python实现对比两个Excel数据内容并标记出不同的文章就介绍到这了,更多相关Python对比Excel数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家

相关文章

  • Python使用urlretrieve实现直接远程下载图片的示例代码

    Python使用urlretrieve实现直接远程下载图片的示例代码

    这篇文章主要介绍了Python使用urlretrieve实现直接远程下载图片的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • python生成xml时规定dtd实例方法

    python生成xml时规定dtd实例方法

    在本篇文章里小编给大家整理的是关于python生成xml时规定dtd实例方法,需要的朋友们学习参考下。
    2020-09-09
  • Python中迭代器与生成器的用法

    Python中迭代器与生成器的用法

    这篇文章介绍了Python中迭代器与生成器的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 用Python将IP地址在整型和字符串之间轻松转换

    用Python将IP地址在整型和字符串之间轻松转换

    这篇文章主要给大家介绍了利用Python将IP在整型和字符串之间轻松转换的相关资料,文中还跟大家分享了Python下利用正则表达式来匹配校验一个字符串是否为ip地址的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • 利用python画出折线图

    利用python画出折线图

    这篇文章主要为大家详细介绍了利用python画出折线图的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 跟老齐学Python之再深点,更懂list

    跟老齐学Python之再深点,更懂list

    对于list,由于她的确非常非常庞杂,在python中应用非常广泛,所以,虽然已经介绍完毕了基础内容,这里还要用一讲深入一点点,往往越深入越...
    2014-09-09
  • 利用Python多线程实现图片下载器

    利用Python多线程实现图片下载器

    这篇文章主要介绍了利用Python多线程制作的图片下载器的相关代码,文中展示的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-03-03
  • python 同时运行多个程序的实例

    python 同时运行多个程序的实例

    今天小编就为大家分享一篇python 同时运行多个程序的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python RPA自动化机器人模拟鼠标键盘

    Python RPA自动化机器人模拟鼠标键盘

    这篇文章主要介绍了Python RPA自动化机器人模拟鼠标键盘,RPA,全称为Robotic Process Automation,即机器人流程自动化。我们可以利用RPA技术将工作中可重复的部分流程化,让机器替我们完成这一工作
    2023-02-02
  • pycharm必知的一些简单设置方法

    pycharm必知的一些简单设置方法

    这篇文章主要介绍了pycharm必知的一些简单设置方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论