You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python或R合并表头不一致的多Sheet Excel文件?

解决Excel多工作表(表头不一致)合并问题

我来帮你搞定这个多Sheet表头不一致的Excel合并需求!这种场景用Python的pandas库处理最灵活,能自动对齐不同表头,缺失列自动填充空值,完全适配你的情况。

步骤1:先装必要依赖

如果还没安装相关库,打开命令行跑这行:

pip install pandas openpyxl

(如果你的Excel是.xls格式,把openpyxl换成xlrd就行)

步骤2:直接用这段脚本合并

把下面代码里的your_excel_file.xlsx换成你的文件路径,运行就能生成合并后的文件:

import pandas as pd

# 读取目标Excel的所有工作表
excel_file = pd.ExcelFile("your_excel_file.xlsx")

# 逐个读取工作表数据,存到列表里
sheet_dfs = []
for sheet_name in excel_file.sheet_names:
    df = excel_file.parse(sheet_name)
    # 可选:给每行加个来源Sheet标记,方便后续溯源
    df["来源工作表"] = sheet_name
    sheet_dfs.append(df)

# 合并所有数据,自动对齐表头,缺失列填充NaN
merged_result = pd.concat(sheet_dfs, ignore_index=True)

# 把合并结果导出成新Excel
merged_result.to_excel("合并后的Excel文件.xlsx", index=False, engine="openpyxl")

print("合并完成!结果已保存到当前目录")

关键细节说明

  • 自动对齐表头pd.concat()会自动识别所有Sheet的列名,相同列名的内容会合并到一起,某个Sheet没有的列会用NaN(空值)填充,完美解决表头差异问题。
  • 来源标记:代码里的来源工作表列可以帮你快速知道每行数据来自哪个原始Sheet,不需要的话删掉那两行就行。
  • 空值处理:如果想把空值换成0或者其他内容,合并后加一行代码就行:
    # 把所有空值填充为0,按需调整
    merged_result = merged_result.fillna(0)
    

比如你提供的Sheet1有FISCAL_YEARCOMPANY_CODE等列,假设另一个Sheet有FISCAL_YEARACCOUNTSHeader3这些列,合并后会包含所有列,缺失的单元格自动补空,完全不影响数据完整性。

内容的提问来源于stack exchange,提问作者Shubhankar Dash

火山引擎 最新活动