EXCEL对比工具

拖拽 2 个excel文档到这里 或者

在日常的数据分析和办公场景中,我们经常会遇到需要对比两个 Excel 文件内容的情况。可能是核对不同版本数据的修改,也可能是比对两个数据源的差异。用 Python 处理这类任务,能快速且精准地找出差异,下面就分享具体实现方法和代码示例。

处理 Excel 文件,我们选用pandas库,它功能强大,处理数据表格十分便捷。首先得安装pandas库,在命令行输入pip install pandas就能完成安装。安装好后,来看具体代码:

import pandas as pd

# 读取两个Excel文件
excel1_path = "file1.xlsx"
excel2_path = "file2.xlsx"
df1 = pd.read_excel(excel1_path)
df2 = pd.read_excel(excel2_path)

# 对比两个DataFrame
if df1.equals(df2):
    print("两个Excel文件内容完全相同")
else:
    diff = df1 != df2
    for col in df1.columns:
        for index in range(len(df1)):
            if diff.loc[index, col]:
                print(f"文件差异:在第{index + 1}行,{col}列,file1的值是{df1.loc[index, col]},file2的值是{df2.loc[index, col]}")

上述代码中,先用pd.read_excel分别读取两个 Excel 文件,将内容存入DataFrame数据结构。接着,通过equals方法判断两个DataFrame是否完全相同,如果相同直接输出提示;若不同,则通过布尔索引找出存在差异的位置,循环遍历每一列和每一行,一旦发现对应位置的值不相等,就输出具体差异信息,包括所在行、列以及两个文件对应位置的值。

不过,实际应用中可能会遇到更复杂的情况。比如,两个 Excel 文件的列顺序不一致,这时可以在对比前先统一列的顺序,使用df1 = df1[df2.columns]就能调整df1的列顺序和df2一致。又或者,文件中存在缺失值,可先使用df1.fillna(0, inplace=True)df2.fillna(0, inplace=True)将缺失值填充为 0,再进行对比。

通过 Python 和pandas库对比 Excel 文件,不仅能节省大量手动核对的时间,还能避免人工比对容易出现的疏漏。基于这些基础代码,我们还能继续拓展功能,比如将差异结果保存到新的 Excel 文件中,方便后续查看和处理。如果你在对比 Excel 文件时遇到其他特殊需求,也可以在这个代码基础上灵活调整。