领导让我合并100个Excel,我用Python10分钟搞定
- 2026-09-24 10:23:04

100个Excel文件,手动合并要一下午,用Python只要10分钟
这周四下午四点半,领导突然在群里发消息:
"把各部门这季度的销售数据合并成一张总表,明天早上开会要用。"
我打开共享文件夹一看,里面整整齐齐躺着100个Excel文件——每个部门一个,每个文件里是该部门的季度销售明细。
如果手动操作,流程是这样的:打开第一个文件,全选,复制,切到总表,粘贴。然后第二个、第三个……重复100次。中间还要注意每个文件的表头是不是一样、有没有空行、列顺序对不对。
保守估计,手动弄完要两三个小时,还容易出错。
但我用Python写了一段不到20行的代码,运行了不到1分钟,100个文件就全部合并好了。剩下的时间,我用来检查数据质量、做了个数据透视表,此时离下班还有半小时。
今天把这段代码和完整操作步骤分享给你。不需要你有编程基础,照着复制粘贴就能用。

面对100个Excel文件,手动复制粘贴是最笨的办法
01 为什么用Python,而不是手动复制
有人可能会说:不就是合并Excel吗,我用Excel的"移动或复制"功能也能弄。
确实,几个文件的时候手动弄没问题。但当文件数量达到几十个、上百个的时候,手动操作有三个致命问题:
第一,慢。打开、复制、切换、粘贴,每个文件至少要30秒。100个文件就是50分钟,这还不算中间出错重来的时间。
第二,容易错。手动复制很容易漏行、多粘、粘错位置。尤其是文件多了之后,你根本记不住哪个粘了哪个没粘。最后总表的数据对不上,查错的时间比做表还长。
第三,不可复用。这次手动弄完了,下个月领导又要合并,你还得从头再来一遍。而用Python,写好一次脚本,以后每次只要双击运行,几秒钟就搞定。
所以,只要你遇到的是"重复性的、有规律的"Excel操作,就应该考虑用Python自动化。合并文件只是最基础的一个场景。
02 准备工作:5分钟搞定环境
在运行代码之前,需要做两件准备工作。
第一步:安装Python。
如果你电脑上还没有Python,先去Python官网(python.org)下载最新版本,安装时记得勾选"Add Python to PATH"这个选项,其他默认下一步就行。安装完成后,按Win+R输入cmd打开命令行,输入python --version,如果显示版本号就说明安装成功了。
第二步:安装pandas库。
pandas是Python里处理表格数据最强大的库,我们合并Excel主要靠它。打开命令行,输入以下命令安装:
pip install pandas openpyxl这里同时安装了pandas和openpyxl——pandas负责数据处理,openpyxl负责读写Excel文件。安装过程几十秒,看到"Successfully installed"就说明好了。
就这两步,准备工作完成。接下来是核心代码。
03 完整代码:不到20行,复制就能用
新建一个文本文件,把下面的代码复制进去,然后把文件名改成"合并Excel.py"(注意后缀名要从.txt改成.py)。
import osimport pandas as pd# ① 设置Excel文件所在的文件夹路径folder_path = r"C:\Users\你的用户名\Desktop\数据文件"# ② 获取文件夹里所有Excel文件files = [f for f in os.listdir(folder_path) if f.endswith(".xlsx")]# ③ 创建空列表,用来存每个文件的数据all_data = []# ④ 循环读取每个Excel文件for file in files:file_path = os.path.join(folder_path, file)df = pd.read_excel(file_path)df["来源文件"] = file # 增加一列,标记数据来自哪个文件all_data.append(df)# ⑤ 把所有数据合并成一张表result = pd.concat(all_data, ignore_index=True)# ⑥ 保存合并结果output_path = os.path.join(folder_path, "合并结果.xlsx")result.to_excel(output_path, index=False)print(f"完成!共合并{len(files)}个文件,{len(result)}行数据")
代码里只有一处需要你修改:就是第5行的folder_path,把它改成你自己存放Excel文件的文件夹路径。比如你的文件都放在桌面上的"销售数据"文件夹里,就写成 r"C:\Users\你的用户名\Desktop\销售数据"。
改好之后,双击这个.py文件,或者在命令行里运行 python 合并Excel.py,就能看到黑色窗口里跳出"完成!共合并XX个文件,XXXX行数据"。然后去文件夹里找"合并结果.xlsx",就是合并好的总表。

运行成功后,文件夹里会自动生成合并结果.xlsx
04 代码看不懂?逐行给你讲明白
很多人看到代码就头大,其实这段代码逻辑非常简单,就是"读文件—存起来—合并—保存"四步。我用大白话逐行解释。
第1-2行:导入工具。import os是导入操作系统工具,用来读取文件夹里的文件列表;import pandas as pd是导入数据处理库,pd是它的简称,后面用pd代替pandas,少打几个字。
第5行:告诉程序文件在哪。folder_path就是你存放Excel文件的文件夹路径,前面加个r是为了让路径里的反斜杠不被转义,直接复制文件夹地址粘贴进来就行。
第8行:找出所有Excel文件。os.listdir会列出文件夹里的所有文件,然后用if f.endswith(".xlsx")筛选出后缀是.xlsx的Excel文件。如果你的文件是.xls格式,把这里改成".xls"就行。
第11行:准备一个空容器。all_data是一个空列表,想象成一个空篮子,后面把每个文件的数据都放进去。
第14-18行:循环读取每个文件。这是代码的核心。for file in files就是"对每个文件都做一遍下面的操作":先拼接出文件的完整路径,然后用pd.read_excel读取文件内容,接着增加一列叫"来源文件",把文件名写进去(这样合并后你能知道每一行数据来自哪个文件),最后把这个文件的数据放进all_data篮子里。
第21行:合并所有数据。pd.concat就是"拼接"的意思,把篮子里的所有数据上下拼在一起,变成一张大表。ignore_index=True是让行号重新从1开始编号,不然每个文件的行号都是从1开始,合并后会重复。
第24-25行:保存结果。把合并好的大表保存成"合并结果.xlsx",放在原来的文件夹里。index=False是不把行号保存到Excel里,不然会多出一列没用的序号。
第27行:打印完成提示。运行完后在黑色窗口里显示合并了多少个文件、多少行数据,让你知道程序确实跑完了,而不是卡住了。
看懂了吗?整个逻辑就是:找到文件→一个个读进来→拼在一起→保存。没有任何复杂的东西。
05 进阶:3个让脚本更好用的优化
上面的基础版已经能解决90%的合并需求了。但如果你遇到一些特殊情况,可以试试下面这几个优化。
优化一:只读取指定的工作表。
如果每个Excel文件里有多个工作表,你只想合并其中叫"销售明细"的那个表,可以在pd.read_excel里加上sheet_name参数:
df = pd.read_excel(file_path, sheet_name="销售明细")优化二:跳过表头不一致的文件。
有时候某个部门交上来的表格式不一样,表头多了几行说明文字。可以在读取时指定从第几行开始作为表头:
df = pd.read_excel(file_path, header=2) # 第3行作为表头(从0开始数)优化三:合并前自动删除空行。
有些文件末尾可能有空行,合并后总表里会出现很多空白行。在读取后加一行删除空值:
df = df.dropna(how="all") # 删除整行都是空的行这三个优化可以根据实际情况组合使用。如果你不确定要不要加,就先用基础版跑一遍,看看结果有没有问题,再决定加不加。
06 最常见的3个报错和解决方法
第一次运行代码,很可能会遇到报错。别慌,90%的问题都是下面这三种。
报错一:FileNotFoundError,找不到文件。
原因:folder_path路径写错了,或者文件夹里没有.xlsx文件。解决方法:检查路径是否正确,注意文件夹名有没有打错;确认文件后缀确实是.xlsx而不是.xls或者.csv。
报错二:PermissionError,权限被拒绝。
原因:合并结果.xlsx这个文件已经被打开了,程序无法覆盖写入。解决方法:把打开的Excel关掉,再重新运行一次。
报错三:ImportError,没有这个模块。
原因:pandas或者openpyxl没有安装成功。解决方法:重新运行pip install pandas openpyxl,注意看有没有报错信息。如果安装成功但还是报错,可能是Python环境有多个,确认你用的是安装了库的那个Python。
如果遇到其他报错,把报错信息复制到搜索引擎里,基本上都能找到解决方案。Python的报错信息其实很友好,它会告诉你哪一行出了问题、是什么类型的错误。
写在最后
今天分享的这个脚本,只是Python办公自动化的冰山一角。
除了合并Excel,Python还能做:批量重命名文件、自动生成Word报告、批量发送邮件、自动填充表单……几乎所有重复性的电脑操作,都能用Python自动化。
但我不建议你一上来就去系统学Python。很多人买了课、看了书,学了半个月变量和循环,还是不知道怎么用在工作里。更好的方式是:遇到一个具体的重复工作,就找对应的Python解决方案,抄过来改一改就能用。用着用着,自然就懂了。
今天这个合并Excel的脚本,建议你现在就找一个有多个Excel文件的文件夹,照着步骤跑一遍。第一次可能会遇到报错,没关系,对照上面的解决方法排查。跑通之后,你会发现:原来编程离普通人这么近。
如果你在运行过程中遇到问题,或者想让我写其他办公场景的Python脚本,欢迎在评论区留言。