云计算百科
云计算领域专业知识百科平台

【Python项目实战】项目·Excel 批量报表合并:几十个表格一键汇总

从这里开始,项目会明显“变重”:更多边界处理、更完整的参数、更接近能直接交付给同事使用的程度——对得起你的订阅。

🎯 本篇成品:一条命令,把几十个同格式的Excel分表合并成一个总表,自动记录每行数据来自哪个文件。 🐼 pandas首次登场,含注释110行左右。


📌 太长不看版(给想快速上手的你)

项目信息
一句话说明
项目名称 Excel批量报表合并
代码行数 ~110行(含注释)
依赖 pandas + openpyxl(第一次装两个包)
核心功能 一键合并同格式Excel → 总表 + 追溯来源
跑起来的命令 python main.py ./分表
核心知识点 pd.read_excel → pd.concat → df.to_excel
做完你能得到 月底2小时手工活 → 3秒自动完成

一、场景共鸣:月底的两小时手工活

每个月底,30个门店的销售日报躺在文件夹里,你要把它们复制粘贴进一个总表——Ctrl+C、Ctrl+V重复30次,还要小心漏掉哪个文件、粘错哪一行。

这个活每月吃掉你两小时,一年就是一天。

📌 本篇之后,它变成一条命令,耗时3秒:

$ python main.py ./分表
读取 门店01.xlsx:128行
读取 门店02.xlsx:131行
读取 门店03.xlsx:96行

合并完成:12 个文件,共 1503 行 → 合并总表.xlsx


二、前置知识:pandas四大件(先建立概念图)

pandas是Python数据处理的头号工具,本篇只用它最基础的四件:

四大件
写法
一句话解释
📥 装进内存 pd.read_excel(文件) 读出一张“智能表格”——DataFrame
📊 DataFrame “带行列编号的智能表格”,pandas的一切核心
📚 纵向拼接 pd.concat([表1, 表2]) 把多张同结构表格上下摞起来
💾 写回磁盘 df.to_excel(文件) 存成Excel,index=False不写行号

📌 两点说明

说明
详情
为什么要装两个包 pandas管表格逻辑,openpyxl管Excel文件格式。缺一不可
为什么用xlsx不是CSV CSV里中文在Excel直接打开容易乱码,xlsx稳。后面爬虫存数据时你会见到CSV的主场

三、第0步:setup——依赖第一次“成双”

1. 新建文件夹 excel_merge,VSCode打开
2. python -m venv venv && 激活venv
3. git init + .gitignore
4. pip install pandas openpyxl # 🚀 第一次装两个包
5. pip freeze > requirements.txt

打开requirements.txt看一眼:这次不止一行了——pandas带着自己的依赖(numpy等)一起进来。

这就是之前说的“依赖会滚雪球”,也是为什么虚拟环境从第一个项目就要建。


四、第1步:找文件——先排除“假xlsx”

\”\”\”merge_excel —— 批量合并同格式Excel报表\”\”\”
import argparse
from pathlib import Path

import pandas as pd

def find_xlsx(folder: Path) > list[Path]:
\”\”\”找出所有真正的xlsx(排除Excel打开时产生的临时锁文件)\”\”\”
files = sorted(folder.glob(\”*.xlsx\”))
return [f for f in files if not f.name.startswith(\”~$\”)]

🎯 那一行~$过滤是本篇第一个实战彩蛋:

💡 Excel开着某个文件时,会在同目录留下~$文件名.xlsx的临时锁文件——它长得像数据文件,内容却是乱码,不过滤掉就会混进合并结果(第九节②现场表演)。


赞(0)
未经允许不得转载:网硕互联帮助中心 » 【Python项目实战】项目·Excel 批量报表合并:几十个表格一键汇总
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!