400 8949 560

NEWS/新闻

分享你我感悟

您当前位置> 主页 > 新闻 > 技术开发

Python自动化办公教程_ExcelWordPDF批量处理案例

发表时间:2025-12-31 00:00:00

文章作者:舞夢輝影

浏览次数:

Python办公自动化核心是用openpyxl/pandas处理Excel、python-docx生成Word、PyPDF2/reportlab操作PDF,三者联动可实现数据读取→文档生成→PDF转换→邮件发送全流程。

用Python做办公自动化,核心是把重复操作变成几行代码——Excel整理数据、Word生成报告、PDF批量加水印,都不需要手动点来点去。关键不是学多深的语法,而是掌握几个实用库的典型用法。

Excel:用openpyxl和pandas处理表格

openpyxl适合读写.xlsx文件,能精确控制单元格样式、公式、合并单元格;pandas更适合清洗、计算、汇总数据。日常中常组合使用:pandas做分析,openpyxl做格式输出。

  • 读取多个Excel文件合并成一张表:用pandas.concat([pd.read_excel(f) for f in file_list])
  • 按条件筛选并导出新表:比如df[df['销售额'] > 10000].to_excel('达标名单.xlsx', index=False)
  • 给结果表自动加边框、调列宽:用openpyxl打开刚生成的文件,遍历工作表设置ws.column_dimensions['A'].width = 15

Word:用python-docx生成标准化文档

合同、通知、周报这类结构固定、内容替换为主的文档,最适合用python-docx批量生成。它不支持复杂排版,但填空、插图、加标题、分页完全够用。

  • 模板里用占位符(如{姓名}{日期}),用docx.replace_text(doc, '{姓名}', '张三')批量替换
  • 插入表格:用table = doc.add_table(rows=1, cols=3),再循环row.cells[0].text = str(item)
  • 导出时注意保存路径不要含中文或空格,避免报错

PDF:用PyPDF2和reportlab实现基础批量操作

PyPDF2擅长拆分、合并、加密、提取文本;reportlab适合从零生成带格式的PDF(比如发票、证书)。多数办公场景只需前者。

  • 批量加水印:先用reportlab画一个透明水印页保存为watermark.pdf,再用PyPDF2把每页原PDF和水印页overlay_page()叠加
  • 合并多个PDF:遍历文件列表,用pdf_writer.add_page(page)逐页添加,最后output.write(f)
  • 提取所有PDF里的文字:用page.extract_text()(新版PyPDF2支持),再用正则匹配关键信息如订单号、金额

三者联动:一个真实小案例

销售部每周要发客户对账单:从Excel读客户信息和交易明细 → 每个客户生成一份Word对账说明 → 再转成PDF → 最后打包发邮件。整个流程可封装成一个脚本,运行一次完*部动作。

  • 用pandas读Excel,按'客户名称'分组
  • 对每组数据生成一个Word文档(用python-docx)
  • 调用docx2pdf库直接转PDF(比另开Word进程更稳)
  • smtplib自动发送,附件为对应PDF

不复杂但容易忽略:文件路径用os.path.join()拼接,读写前检查文件是否存在,异常时用try/except提示具体哪步出错。跑通一个案例,后面同类任务就只是改几行参数的事。

相关案例查看更多