批量合并多 Excel 工作簿实战

📅 2026/7/12 5:06:54
批量合并多 Excel 工作簿实战
你这周合并表格花了多久我见过太多职场人的日常月底财务要合并全公司 12 个部门的报销表一个一个打开复制粘贴运营要汇总 30 个渠道的周度数据格式还不完全统一HR 要合并各分公司的人员信息表核对起来眼都花了。少则几十分钟多则两三个小时全是机械重复劳动还容易漏行、粘错行最后核对数据又要返工。今天这篇文章教你用 Python 写一个通用的批量合并脚本同一个文件夹下的所有 Excel 文件一键自动合并成一张总表全程不到 10 秒。代码复制就能用零基础也能跟着操作。二、实战场景说明我们以最常见的职场场景为例文件夹里有 N 个 Excel 工作簿每个工作簿里只有 1 个工作表表头格式完全一致需要把所有文件的数据合并到一个总表中保留表头自动累加数据。比如「销售数据」文件夹下有华北区、华东区、华南区等多个区域的销售报表结构完全相同需要合并成全国总表。三、环境准备只需要安装 2 个 Python 库打开命令提示符输入即可pip install pandas openpyxlpandasPython 数据处理神器处理表格又快又简单openpyxl读写 Excel 文件的底层引擎四、完整代码 逐行详解直接复制下面的代码只需要改 1 个地方文件夹路径就能运行。import os import pandas as pd # 只需要修改这里 # 存放所有待合并Excel的文件夹路径注意用反斜杠/或者双反斜杠\\ folder_path C:/Users/Desktop/销售数据 # 合并后输出的文件名称 output_file 全国销售总表.xlsx # # 1. 获取文件夹下所有的Excel文件 file_list [] for filename in os.listdir(folder_path): # 只处理xlsx格式文件忽略临时文件和其他格式 if filename.endswith(.xlsx) and not filename.startswith(~$): file_list.append(os.path.join(folder_path, filename)) print(f找到 {len(file_list)} 个待合并的Excel文件) # 2. 批量读取并合并数据 df_list [] for file in file_list: # 读取Excel第一个工作表默认保留表头 df pd.read_excel(file, engineopenpyxl) # 可选新增一列标记数据来源文件名方便追溯 df[数据来源] os.path.basename(file) df_list.append(df) # 3. 纵向合并所有数据表 result_df pd.concat(df_list, ignore_indexTrue) # 4. 输出到新的Excel文件 result_df.to_excel(os.path.join(folder_path, output_file), indexFalse, engineopenpyxl) print(f合并完成共合并 {len(result_df)} 行数据已保存为{output_file})五、代码核心逻辑拆解遍历文件用os.listdir遍历目标文件夹筛选出所有.xlsx文件自动跳过打开时产生的临时文件批量读取循环读取每个 Excel 文件用df_list存起来追加来源列新增「数据来源」列合并后也能知道每一行数据来自哪个文件非常实用纵向合并pd.concat一键完成所有表格的纵向拼接ignore_indexTrue重置行号避免索引重复导出结果保存到原文件夹不生成多余文件。六、进阶优化应对更复杂的职场场景上面是基础版实际工作中常会遇到更复杂的情况这里给两个高频优化方案。场景 1每个 Excel 里有多个工作表只合并指定名称的工作表只需要修改读取部分的代码指定sheet_name# 只读取每个文件中名为「销售明细」的工作表 df pd.read_excel(file, sheet_name销售明细, engineopenpyxl)场景 2表头不在第 1 行从第 3 行开始才是正式数据很多公司的报表前面有标题行、说明行数据从第 N 行开始加一个header参数即可# 表头在第3行索引从0开始所以填2 df pd.read_excel(file, header2, engineopenpyxl)七、写在最后这个脚本我自己帮很多职场朋友写过反馈最统一的一句话是以前要做一上午的活现在点一下运行去接杯水的功夫就做完了。职场里的竞争力从来不是比谁加班更久而是比谁能把重复劳动高效搞定把时间花在更有价值的事情上。这是本专栏的第 1 篇实战内容后续会持续更新 Excel 自动化的高频场景包括批量核对两个表格的差异自动标记不同批量生成带格式的日报 / 周报 / 月报用 Python 自动做数据透视表 可视化批量拆分 Excel按部门 / 区域自动分文件如果觉得有用欢迎订阅专栏每一篇都是拿来即用的实战干货帮你彻底告别 Excel 加班。