可采用五种方法批量合并Excel工作簿:一、Power Query自动合并;二、VBA宏定制合并;三、Kutools插件图形化操作;四、Python pandas命令行处理;五、Excel数据连接+数据模型动态汇总。

如果您需要将多个Excel工作簿中的数据整合到一个文件中,但手动复制粘贴效率低下且易出错,则可能是由于缺乏统一的数据汇总机制。以下是实现Excel批量合并工作簿的多种方法:
一、使用Power Query自动合并工作簿
Power Query是Excel内置的数据连接与转换工具,可自动识别同一文件夹下所有Excel文件的指定工作表,并将其纵向堆叠合并,无需编写代码,适用于Excel 2016及以后版本(含Microsoft 365)。
1、将所有待合并的Excel文件放入同一个空文件夹中,确保各文件结构一致(如均含“Sheet1”,且列标题相同)。
2、在目标Excel中,点击【数据】选项卡 → 【获取数据】→ 【从文件】→ 【从文件夹】。
3、浏览并选择该文件夹,点击【确定】;在弹出的文件列表中,点击【转换数据】。
4、在Power Query编辑器中,展开【Content】列右侧的展开按钮,勾选【选择全部列】,点击【确定】。
5、删除除目标数据表外的冗余列(如Name、Extension、Date accessed等),保留实际数据列。
6、点击【主页】→ 【关闭并上载】,数据将自动加载至新工作表中。
二、利用VBA宏批量合并工作簿
VBA脚本可遍历指定路径下的所有Excel文件,逐个打开并读取指定工作表内容,追加至当前工作簿的活动表中,适合对合并逻辑有定制需求(如跳过标题行、添加源文件名标识)的用户。
1、按
2、粘贴以下代码(请将"path\"替换为实际文件夹路径,如"C:\合并文件\"):
Sub MergeWorkbooks()
Dim Path$, File$, Wb As Workbook, ws As Worksheet
Path = "path\"
File = Dir(Path & "*.xlsx")
Do While File ""
If Not File Like ThisWorkbook.Name Then
Set Wb = Workbooks.Open(Path & File)
For Each ws In Wb.Worksheets
ws.UsedRange.Offset(1).Copy ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1)
Next ws
Wb.Close False
End If
File = Dir
Loop
End Sub
3、返回Excel界面,按
4、确认目标工作簿已启用宏,且保存格式为.xlsm。
三、使用第三方自动化插件:Kutools for Excel
Kutools提供图形化操作界面,支持一键合并多个工作簿或工作表,可自动匹配列标题、去重、添加文件名/工作表名为新列,大幅降低操作门槛。
1、安装Kutools for Excel插件并重启Excel,确保顶部菜单栏出现【Kutools】选项卡。
2、点击【Kutools】→ 【工作簿】→ 【合并工作簿】。
清理、标准化、验证并汇总杂乱的 Excel 工作簿。当 Codex 需要处理 `.xlsx`、`.xls`、`.xlsm` 或 `.csv` 格式的数据时使用,包括:统一表头格式、删除空白行与空白列、修剪文本内容、去重记录、检测数据质量问题、拆分或合并工作表、生成清洗后的工作簿,以及为业务电子表格生成审计摘要。
3、在弹窗中点击【添加文件】,选中所有待合并的.xlsx或.xls文件,点击【打开】。
4、勾选【合并所有工作表】或【仅合并指定工作表】,设置是否保留原始格式、是否添加源信息列。
5、点击【确定】,插件自动生成新工作簿,所有数据按顺序合并至单一工作表中。
四、通过Python pandas批量合并(命令行方式)
适用于熟悉基础Python环境的用户,pandas可高效读取大量Excel文件,自动处理空行、列名不一致等情况,并导出为单一Excel或CSV文件,执行速度快于VBA。
1、安装必要库:在命令提示符中运行 pip install pandas openpyxl。
2、新建文本文件,重命名为merge_excel.py,写入以下代码(修改folder_path为实际路径):
import pandas as pd
import os
folder_path = r"folder_path"
all_data = []
for file in os.listdir(folder_path):
if file.endswith(".xlsx") or file.endswith(".xls"):
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path)
df["来源文件"] = file
all_data.append(df)
merged_df = pd.concat(all_data, ignore_index=True)
merged_df.to_excel("合并结果.xlsx", index=False)
3、双击运行该.py文件,生成的“合并结果.xlsx”将保存在同一目录下。
4、确保各Excel文件未被其他程序占用,且首行为标准列标题。
五、采用Excel内置的“数据连接”+“现有连接”方式
此方法将多个工作簿作为外部数据源注册,通过创建统一查询并刷新获取最新数据,适合需定期更新合并结果且原始文件持续变动的场景。
1、新建空白Excel,在【数据】选项卡中点击【获取数据】→ 【来自文件】→ 【从工作簿】。
2、依次导入第一个Excel文件,加载其目标工作表后,在Power Query编辑器中点击【文件】→ 【关闭并上载至】→ 【仅创建连接】。
3、重复步骤1–2,为每个待合并文件建立独立连接,所有连接将显示在【数据】→ 【查询和连接】窗格中。
4、右键任一连接 → 【加载到】→ 【仅创建连接】→ 勾选【将此数据添加到数据模型】。
5、点击【数据模型】→ 【管理关系】,手动为各表建立基于共同字段(如ID)的关系。
6、在【插入】选项卡中点击【数据透视表】→ 【使用此工作簿的数据模型】,拖入所需字段进行动态汇总。

















