如何用Python合并200+个Excel文件为1-8个大文件?
问题解答
能否实现合并?
完全可以。你可以根据需求将200+个文件按数量均分(比如每25个文件合并为一个大文件),或按其他规则分组,再将每组内的Excel数据合并到同一个大文件的不同工作表(或同一工作表)中。
适合的Python开发库
- pandas:最主流的Excel数据处理工具,语法简洁高效,能轻松完成批量读取、数据合并、写入大文件的全流程,是此类场景的首选。
- 核心操作:用
pd.read_excel()读取指定工作表数据;用pd.concat()合并多表数据(若需合并到同一工作表);用pd.ExcelWriter()实现多工作表的大文件写入。 - 示例代码片段:
import pandas as pd from pathlib import Path # 假设已整理好的文件路径与工作表名列表:[(文件路径, 工作表名), ...] file_sheet_pairs = [("data_01.xlsx", "SheetA"), ("data_02.xlsx", "SheetB")] # 按每25个文件为一组拆分,最终生成8个左右的大文件 file_groups = [file_sheet_pairs[i:i+25] for i in range(0, len(file_sheet_pairs), 25)] # 批量合并每组文件到一个大Excel for group_idx, group in enumerate(file_groups, start=1): with pd.ExcelWriter(f"merged_{group_idx}.xlsx") as writer: for file_path, sheet_name in group: df = pd.read_excel(file_path, sheet_name=sheet_name) # 将每个源表保存为大文件的独立工作表,表名用源文件名称区分 df.to_excel(writer, sheet_name=f"src_{Path(file_path).stem}", index=False)
- 核心操作:用
- openpyxl:专注于读写Excel 2010+(.xlsx)格式的底层库,适合需要精细控制Excel格式、样式或工作表结构的场景,也可与pandas配合使用以扩展功能。
- xlrd/xlwt:仅适用于旧版Excel(.xls)文件的读写,其中xlrd已停止对.xlsx格式的支持,若没有旧格式文件需求,无需优先考虑。
关键注意事项
- 处理超大量文件时,建议分批次读取合并,避免一次性加载过多数据导致内存溢出。
- 若源文件存在列名不一致、数据格式差异的情况,需先完成数据清洗对齐,再执行合并操作。
内容的提问来源于stack exchange,提问作者Jessica
相关产品推荐
相关产品推荐

