一、前言
在现代办公中,重复性高、耗时长的任务司空见惯,如处理 Excel 报表、批量重命名文件、生成邮件通知、数据清洗等。借助 Python 的强大能力,我们可以将这些手动操作变成自动化流程,大幅提升效率。
本文将从自动化办公的常见场景出发,结合代码实战,介绍如何使用 Python 执行自动化任务,包括 Excel 表格操作、文件处理、邮件发送、Word 文档生成、PDF 处理、图表可视化等。文章适合对 Python 有一定基础的办公人员、数据分析师、行政人员或开发者参考使用。
二、Python 办公自动化生态简介
常用库汇总
功能
推荐库
Excel 读写
openpyxl、pandas、xlrd
Word 文档生成
python-docx
PDF 操作
PyPDF2、pdfplumber
邮件发送
smtplib、email
文件系统操作
os、shutil、pathlib
时间日期处理
datetime、time
自动化桌面控制
pyautogui
图表生成
matplotlib、seaborn、openpyxl
三、Excel 报表自动处理
1. 安装依赖
bash复制编辑pip install openpyxl pandas
2. 读取和写入 Excel 文件
python复制编辑import openpyxl
# 创建并写入
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "销售报表"
ws.append(["姓名", "部门", "销售额"])
ws.append(["小李", "销售部", 12000])
ws.append(["小王", "市场部", 18000])
wb.save("报表.xlsx")
3. 使用 Pandas 快速处理 Excel
python复制编辑import pandas as pd
df = pd.read_excel("报表.xlsx")
df["销售额"] = df["销售额"] * 1.1 # 增加 10% 奖金
df.to_excel("新报表.xlsx", index=False)
四、批量重命名文件和移动文件
1. 自动重命名文件
python复制编辑import os
folder = "D:/合同资料"
for index, filename in enumerate(os.listdir(folder), 1):
if filename.endswith(".docx"):
new_name = f"合同_{index}.docx"
os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))
2. 移动文件到指定目录
python复制编辑import shutil
src_dir = "D:/源文件夹"
dst_dir = "D:/归档文件夹"
for file in os.listdir(src_dir):
if file.endswith(".xlsx"):
shutil.move(os.path.join(src_dir, file), os.path.join(dst_dir, file))
五、邮件自动发送
1. 发送简单邮件
python复制编辑import smtplib
from email.mime.text import MIMEText
msg = MIMEText("你好,这是系统自动发送的测试邮件")
msg["Subject"] = "Python 自动邮件"
msg["From"] = "sender@example.com"
msg["To"] = "receiver@example.com"
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
server.login("sender@example.com", "授权码")
server.send_message(msg)
server.quit()
注意:QQ/163 邮箱需开启“SMTP”服务,并获取授权码登录。
2. 附件邮件发送
python复制编辑from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
msg = MIMEMultipart()
msg["Subject"] = "附带报告的邮件"
msg["From"] = "sender@example.com"
msg["To"] = "receiver@example.com"
msg.attach(MIMEText("请查收附件"))
with open("报表.xlsx", "rb") as f:
part = MIMEBase("application", "octet-stream")
part.set_payload(f.read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", "attachment", filename="报表.xlsx")
msg.attach(part)
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
server.login("sender@example.com", "授权码")
server.send_message(msg)
server.quit()
六、Word 文档自动生成合同/报告
1. 安装与使用 python-docx
bash复制编辑pip install python-docx
2. 自动生成合同文档
python复制编辑from docx import Document
doc = Document()
doc.add_heading("项目合作协议", 0)
doc.add_paragraph("甲方:ABC 公司")
doc.add_paragraph("乙方:XYZ 工作室")
doc.add_paragraph("本协议用于双方达成合作共识,内容如下:")
doc.add_paragraph("1. 合作周期:2025年1月至2025年12月")
doc.add_paragraph("2. 支付方式:每月结算")
doc.save("项目合作协议.docx")
七、PDF 批量提取与合并
1. 读取 PDF 内容
bash复制编辑pip install pdfplumber
python复制编辑import pdfplumber
with pdfplumber.open("文件.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()
print(text)
2. 合并多个 PDF 文件
python复制编辑from PyPDF2 import PdfMerger
merger = PdfMerger()
files = ["合同1.pdf", "合同2.pdf"]
for f in files:
merger.append(f)
merger.write("合并合同.pdf")
merger.close()
八、桌面自动化控制(如批量截图、鼠标点击)
1. 安装 pyautogui
bash复制编辑pip install pyautogui
2. 示例:自动截图并保存
python复制编辑import pyautogui
screenshot = pyautogui.screenshot()
screenshot.save("截图.png")
3. 模拟鼠标和键盘操作
python复制编辑import pyautogui
pyautogui.moveTo(100, 200) # 移动到坐标
pyautogui.click() # 单击
pyautogui.write("自动输入文字") # 键盘输入
pyautogui.press("enter") # 回车
九、数据可视化与图表插入 Excel
1. 生成图表并保存
python复制编辑import matplotlib.pyplot as plt
names = ["一月", "二月", "三月"]
values = [1000, 1500, 1800]
plt.bar(names, values)
plt.title("季度销售额")
plt.savefig("chart.png")
2. 插入图表到 Excel 表格
python复制编辑from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
ws.title = "图表"
img = Image("chart.png")
ws.add_image(img, "A1")
wb.save("带图报表.xlsx")
十、自动化办公综合项目:批量生成员工工资条并发送邮件
1. 项目需求
-
从 Excel 表读取员工信息(姓名、邮箱、工资)
-
自动生成工资单(Word 或 PDF)
-
自动发送至对应邮箱
2. 实现步骤简述
text复制编辑1. 使用 pandas 读取员工 Excel 表格
2. 遍历数据,为每个员工创建工资条 Word 文件
3. 将 Word 转 PDF(可选使用 win32com)
4. 邮件中附上工资条 PDF 自动发送
3. 扩展建议
-
将项目打包成 GUI 应用(使用 PyQt、Tkinter)
-
结合计划任务每日自动运行
-
接入钉钉/企业微信通知接口
十一、办公自动化注意事项
-
权限控制:尤其在批量发送邮件或访问系统文件时需确保权限合法。
-
稳定性:建议加上异常处理、重试机制。
-
数据备份:操作文件或数据库前做好备份。
-
定时执行:可用 Windows 任务计划或 APScheduler 实现自动运行。
十二、总结
Python 办公自动化并不是程序员专属技能,它是每个办公人员都能掌握的“效率工具箱”。通过本篇文章你已掌握:
-
Excel、Word、PDF 的自动处理方法
-
文件管理与批处理技巧
-
邮件发送与附件处理
-
图表生成与数据可视化
-
实战项目组合应用方式
下一步你可以尝试封装脚本为应用程序(.exe),或配合任务调度实现无人工干预的每日办公自动流程。