Python技巧—1000个Excel批量合并—3秒搞定??
- 2026-11-04 20:12:36
极速批量Excel合并工具
一、为什么要做这个工具
很多办公场景里,Excel 数据不是不会做,而是太碎、太多、太重复。
比如:
• 20 个员工每天各交 1 份报表 • 30 个门店每周各发 1 份销售表 • 多个部门分别维护自己的台账 • 客户名单分散在几十个 Excel 文件里
如果手动复制粘贴,不但耗时,而且很容易出错。尤其当文件一多、日期一长,重复劳动会非常明显。
所以我做了这个小工具:
一个专门用来合并已有 Excel 文件的桌面程序。
它的目标很简单:
• 不折腾 • 不复杂 • 不要求会写代码 • 打开就能用
此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅,也感谢大家支持,我才有更新的动力

二、这个工具能做什么
这个工具基于 PyQt5 开发,提供了简洁的桌面图形界面,核心能力就是一件事:
批量合并一个文件夹中的多个 Excel 文件。
它支持:
• 选择待合并 Excel 所在目录 • 自定义合并结果保存路径 • 自动读取目录内所有 .xlsx文件• 自动跳过 Excel 临时文件 • 将多份表格追加合并成一个总表 • 自动增加 来源文件列• 用进度条和日志实时展示执行过程
三、它适合哪些人
这个工具非常适合以下人群:
• 行政人员 • 财务人员 • 人事专员 • 电商运营 • 数据助理 • 门店管理者 • 经常处理日报、周报、月报的人
如果你每天都要把很多 Excel 汇总到一起,这个工具就能明显帮你节省时间。
四、界面设计思路
我这次没有做复杂功能堆砌,而是只保留了真正高频的动作。
界面只保留几个关键区域:
• 标题区:展示工具名称和作者 • 合并区:选择目录、设置输出文件、开始合并 • 日志区:显示进度条、状态提示、运行日志
这样做的好处是:
• 新手打开就知道怎么用 • 功能聚焦,不容易误操作 • 界面干净,便于演示和发布
五、合并逻辑怎么实现
程序运行流程大致如下:
1. 选择一个包含多个 Excel 文件的目录 2. 扫描目录中的所有 .xlsx文件3. 跳过类似 ~$这样的临时文件4. 读取每个文件的第一个工作表 5. 以第一份文件的首行作为总表表头 6. 后续文件从第二行开始追加 7. 最后一列写入来源文件名 8. 输出为新的汇总 Excel 文件
这样的逻辑非常适合“结构一致、来源不同”的表格汇总场景。
六、为什么要加来源文件列
很多人合并完 Excel 后,都会遇到一个问题:
这条数据到底来自哪个文件?
所以我在合并结果中专门追加了一列 来源文件。
这样做有几个好处:
• 出现异常数据时可以快速回溯 • 方便核对来源 • 便于后期筛选、透视和统计 • 更适合真实办公环境
这一步虽然简单,但实用性非常高。
七、技术实现亮点
这个工具虽然定位办公小工具,但技术实现上做了几个实用优化:
1. 使用 PyQt5 做桌面界面
相比纯命令行工具,图形界面更适合给普通办公用户使用。
2. 使用线程处理耗时任务
Excel 文件多时,合并操作会耗时。如果直接在主线程处理,界面就会卡死。
所以这里使用了 QThread 把合并任务放到后台执行,界面仍然可以正常刷新进度与日志。
3. 使用 openpyxl 处理 Excel
openpyxl 对 .xlsx 文件兼容性较好,适合办公自动化场景。
4. 使用 PyInstaller 打包成 EXE
这样最终用户不需要配置 Python 环境,直接双击就能使用。
八、这个工具的价值
很多时候,一个真正有价值的小工具,不一定是功能最多的,而是最贴近实际工作流程的。
这个工具的价值在于:
• 把重复劳动变成一键操作 • 降低人工复制出错风险 • 适合分享给同事直接使用 • 非技术人员也能快速上手
对于办公自动化来说,这就是很典型的“高频小需求,高价值落地”。
九、如何打包成可执行程序
我这里使用的是 PyInstaller,打包命令如下:
pyinstaller --noconfirm --clean --onefile --windowed --icon EXCEL.ico --name 极速批量Excel合并工具 main.py参数说明:
• --onefile:打包成单个 EXE• --windowed:运行时不弹出黑色控制台• --icon:指定程序图标• --clean:清理临时缓存,减少历史干扰• --name:设置输出程序名称
打包完成后,生成文件位于:
dist/极速批量Excel合并工具.exe总结
它解决的问题足够真实,界面足够友好,交互足够直接,也很适合拿来展示 Python 在日常办公中的落地价值。
如果你也经常遇到“几十个 Excel 汇总到一个总表”的工作场景,那么这个工具会非常实用。
如果你想继续升级版本,也完全可以在这个基础上继续扩展。