HoRain云--Python 自动化办公:Excel、Word、PDF、邮件全流程
2026/9/16 8:10:21 网站建设 项目流程

1. 场景介绍

每月需要从 Excel 读取销售数据,生成 Word 报告,导出 PDF,并邮件发送给领导。手工操作耗时且易错,用 Python 可一键完成。

2. 环境准备

bash

复制

下载

pip install openpyxl python-docx docx2pdf pandas pywin32

3. 读取 Excel

python

复制

下载

import pandas as pd df = pd.read_excel("sales.xlsx", sheet_name="Sheet1") total = df["金额"].sum() top = df.nlargest(5, "金额")

4. 处理数据

python

复制

下载

summary = df.groupby("地区")["金额"].sum().reset_index() summary = summary.sort_values("金额", ascending=False)

5. 生成 Word 报告

python

复制

下载

from docx import Document from docx.shared import Inches doc = Document() doc.add_heading("销售月报", level=0) doc.add_paragraph(f"总销售额:{total:.2f} 元") doc.add_heading("地区汇总", level=1) table = doc.add_table(rows=1, cols=2) table.style = "Light Grid Accent 1" hdr = table.rows[0].cells hdr[0].text = "地区" hdr[1].text = "金额" for _, row in summary.iterrows(): cells = table.add_row().cells cells[0].text = row["地区"] cells[1].text = f"{row['金额']:.2f}" doc.save("report.docx")

6. Word 转 PDF

Windows 下可用 docx2pdf:

python

复制

下载

from docx2pdf import convert convert("report.docx", "report.pdf")

Linux 可使用 LibreOffice:

bash

复制

下载

libreoffice --headless --convert-to pdf report.docx

7. 发送邮件

python

复制

下载

import smtplib from email.message import EmailMessage msg = EmailMessage() msg["Subject"] = "销售月报" msg["From"] = "sender@example.com" msg["To"] = "boss@example.com" msg.set_content("附件为本月销售报告,请查收。") with open("report.pdf", "rb") as f: msg.add_attachment(f.read(), maintype="application", subtype="pdf", filename="report.pdf") with smtplib.SMTP_SSL("smtp.example.com", 465) as smtp: smtp.login("sender@example.com", "password") smtp.send_message(msg)

8. 定时执行

使用 schedule:

python

复制

下载

import schedule import time def job(): # 执行上述流程 pass schedule.every().monday.at("09:00").do(job) while True: schedule.run_pending() time.sleep(60)

或使用 Windows 任务计划、Linux cron。

9. 常见坑

  • Excel 文件被占用导致读取失败。

  • 邮件授权码不是登录密码。

  • PDF 转换依赖 Office 或 LibreOffice。

  • 附件过大被拒收。

10. 总结

Python 自动化办公可以大幅减少重复劳动。掌握 pandas、python-docx、smtplib 后,可以扩展到报表、合同、发票等场景。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询