用 15 行 Python 把多 Sheet 表格从第 3 行开始秒合并

日常办公中,我们经常会拿到一个包含 N 多个工作表的 Excel 文件,每个表头两行,真正的数据从第 3 行才开始。复制粘贴太痛苦,VBA 又嫌重?今天教你 15 行 Python 代码一键搞定,支持任意多个工作表、自动去头拼接,最后生成新的汇总文件。

1. 前置准备

只需要两个第三方库:

pip install pandas openpyxl

如果你已经安装过,就可以跳过这步。

2. 脚本一览(全路径版)

把下面内容保存成 merge_excel.py无需放在源文件同目录,直接运行即可。

import warnings
import pandas as pd
from pathlib import Path

# 可选:屏蔽 openpyxl 的 Data Validation 警告
warnings.filterwarnings("ignore", category=UserWarning, module="openpyxl")

# 1. 文件路径:使用完整绝对路径
src_file = Path(r"C:\Users\xxx\Desktop\xxxx.xlsx")
dst_file = src_file.with_name(src_file.stem + "_合并.xlsx")

# 2. 读取全部 sheet,从第 3 行开始截取
parts = [
    df.iloc[2:]                          # 跳过前两行
    for _, df in pd.read_excel(
        src_file, sheet_name=None, header=None
    ).items()
]

# 3. 合并 & 写出
merged = pd.concat(parts, ignore_index=True)
merged.to_excel(dst_file, index=False, header=False, sheet_name="合并结果")

print(f"✅ 已生成:{dst_file}")

3. 运行

在终端 / 命令行里直接执行:

python merge_excel.py

几秒后,会在与源文件同目录下得到一个名为
testcaseTemplate -20250716上游定金_合并.xlsx
的新文件,所有工作表的数据从第 3 行开始已自动拼接完成。

4. 常见疑问

问题解答
文件路径换到其他盘?src_file 改成新的绝对路径即可,例如 Path(r"D:\data\demo.xlsx")
只想合并部分 sheet?sheet_name=['Sheet1','Sheet3'] 代替 None
想保留原表头?df.iloc[2:] 改成 df,并在写出时设置 header=True

至此,多 Sheet 合并任务完成,以后再也不用“复制-粘贴”折磨自己啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值