Python批量处理Office文件需选对库:Excel用openpyxl(样式/公式)和pandas(清洗/统计);Word用python-docx(模板替换/动态表格);PDF用PyPDF2(合并/拆分)和pdfplumber(文字/表格提取),三者均遵循“模板→读取→变换→输出”流程。

用Python批量处理Excel、Word和PDF,核心是选对库、理清流程、避开常见坑。不需要写复杂代码,掌握几个关键操作就能替代大量重复手工工作。
Excel批量处理:用openpyxl和pandas最实用
openpyxl适合精确控制单元格样式、公式、多表操作;pandas更擅长数据清洗、合并、统计分析。日常办公中,两者配合效果最好。
- 读取多个Excel文件并合并:用pandas.concat([pd.read_excel(f) for f in file_list]),自动对齐列名
- 按条件筛选后另存为新表:比如df[df['销售额'] > 10000].to_excel('达标名单.xlsx', index=False)
- 给指定列加背景色或边框:用openpyxl加载工作簿→定位sheet→设置cell.fill / cell.border
- 注意:openpyxl不能读取xls旧格式;含公式时需用data_only=True获取计算结果而非公式文本
Word批量生成:python-docx搞定报告与合同
不是所有Word都能靠“替换文字”完成,结构化文档(如带标题、列表、表格的报告)用python-docx更稳。
- 模板法最高效:先手动做好一个标准Word,留好占位符(如{{客户名}}、{{日期}}),再用docx.replace_text()批量替换
- 动态插入表格:用doc.add_table(rows=1, cols=3)创建,再遍历填充数据,避免复制粘贴错行
- 插入分页符或章节标题:用doc.add_page_break()或doc.add_heading('第二部分', level=2)
- 注意:图片插入需提供绝对路径;中文显示异常时,在paragraph.runs[0].font.name = '微软雅黑'后加run._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
PDF批量操作:PyPDF2 + pdfplumber分工明确
PyPDF2负责合并、拆分、加水印等“外壳操作”;pdfplumber专攻文字提取、表格识别等“内容解析”。
基于Intranet/Internet 的Web下的办公自动化系统,采用了当今最先进的PHP技术,是综合大量用户的需求,经过充分的用户论证的基础上开发出来的,独特的即时信息、短信、电子邮件系统、完善的工作流、数据库安全备份等功能使得信息在企业内部传递效率极大提高,信息传递过程中耗费降到最低。办公人员得以从繁杂的日常办公事务处理中解放出来,参与更多的富于思考性和创造性的工作。系统力求突出体系结构简明
立即学习“Python免费学习笔记(深入)”;
- 合并多个PDF:用PdfWriter()逐个add_page(),最后write()保存
- 从PDF提取表格:pdfplumber.open() → page.extract_tables(),返回嵌套列表,可直接转pandas DataFrame
- 批量加页眉页脚:PyPDF2不支持直接编辑内容,可用reportlab生成水印PDF,再用PyPDF2叠加
- 注意:扫描版PDF需先OCR(如用pytesseract),pdfplumber对扫描件无效;加密PDF要先用decrypt('密码')
三类文件处理逻辑其实一致:找模板→读数据→做变换→写结果。不必追求一步到位,先跑通一个Excel合并,再加Word生成,最后接PDF输出,小步快跑最稳妥。









