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(比如发票、证书)。多数办公场景只需前者。
立即学习“Python免费学习笔记(深入)”;
- 批量加水印:先用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提示具体哪步出错。跑通一个案例,后面同类任务就只是改几行参数的事。










