Excel 两表数据快速对比实战与工具教程

二、脚本与工具:当数据量大或需可重复化当表格行数超过几万,或需要做字段对齐、模糊匹配时,推荐用脚本(Python)或专业对比工具。下面给出一个常见的 Python 示例,演示如何读取两个 Excel 并找出差异(基于 pandas):

import pandas as pd

# 读两个表(假设主键列名为'id')

df1 = pd.read_excel('tableA.xlsx')

df2 = pd.read_excel('tableB.xlsx')

# 以 id 为键合并,标出仅在 A、仅在 B、或在两边但字段不同

merged = df1.merge(df2, on='id', how='outer', suffixes=('_A','_B'), indicator=True)

# 找仅在A或仅在B的行

only_a = merged[merged['_merge']=='left_only']

only_b = merged[merged['_merge']=='right_only']

# 找在两边但有不同字段的行(逐列比较示例)

diff_mask = (merged['name_A'] != merged['name_B']) | (merged['price_A'] != merged['price_B'])

diff_rows = merged[diff_mask]

# 输出结果

only_a.to_excel('only_in_A.xlsx', index=False)

only_b.to_excel('only_in_B.xlsx', index=False)

diff_rows.to_excel('different_rows.xlsx', index=False)

这个脚本适用于需要“如何快速对比两个excel表中的不同”与“如何比较两个excel的差异”的场景。Pandas 的 merge + indicator 非常好用。

注意: 合并前务必对主键去空格、统一类型(str/int),否则会造成误判。