Python批量处理Excel报表应以pandas处理数据、openpyxl控制样式、os/pathlib遍历文件为核心,配合异常防护与轻量调度,明确分工可高效完成90%自动化任务。

用Python批量处理Excel报表,关键不在写多少行代码,而在选对工具、理清流程、避开常见坑。核心是用pandas读写数据 + openpyxl操作样式/多表/公式,再配合os或pathlib遍历文件——三者配合,90%的日常报表自动化都能稳稳拿下。
pandas的read_excel()能自动识别.xlsx/.xls,支持指定sheet、跳过行、列名处理;写入时to_excel()配合ExcelWriter可追加多表。别用手动循环xlrd或openpyxl逐单元格读——慢、易错、难维护。
glob或pathlib.Path().glob("*.xlsx")收集路径,pd.concat([pd.read_excel(f) for f in files])
usecols="A:C"或skiprows=2, nrows=100,比手动切片更可靠openpyxl.load_workbook()打开模板,再用pd.ExcelWriter(... engine="openpyxl", if_sheet_exists="replace")
字体、边框、合并单元格、条件格式、图表、密码保护……这些pandas干不了,必须交给openpyxl。原则是:pandas管“算什么”,openpyxl管“怎么呈现”。
ws['A1'].font = Font(bold=True); ws['A1'].alignment = Alignment(horizontal="center")
ws.freeze_panes = "B2"
for col in ws.columns: max_length = max(len(str(cell.value)) for cell in col); ws.column_dimensions[col[0].column_letter].width = min(max_length + 2, 50)
批量处理最怕中途报错导致部分文件写坏或漏处理。加基础防护,脚本就从“偶尔能跑”变成“每天敢用”。
立即学习“Python免费学习笔记(深入)”;
if file.name.startswith("~$") or file.suffix.lower() not in [".xlsx", ".xls"]: continuetry...except包裹单文件处理,记录错误日志(如print(f"❌ {file} 处理失败:{e}")),不中断整体流程shutil.copy(file, file.with_suffix(".xlsx.bak")),改出问题可秒回退日报/周报类任务,不需要复杂调度系统。Windows用任务计划程序绑定.bat,macOS/Linux用crontab,脚本内只需保证可独立执行:
if __name__ == "__main__": main(),方便命令行直接运行Path(__file__).parent / "data"而非硬编码"C:/xxx",迁移不改代码python report.py --mode daily --output ./output_20240520.xlsx,用argparse解析即可基本上就这些。不复杂,但容易忽略细节——比如忘了关闭ExcelWriter导致文件被占用,或没设dtype=str让电话号码变科学计数。动手前先明确:我要改的是数据逻辑?还是页面效果?还是执行节奏?对应找pandas、openpyxl、os/pathlib,各司其职,事半功倍。
以上就是Python自动化脚本批量处理Excel报表核心方法【指导】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号