Python自动化办公能解决什么
每周一你要把上周五的销售数据整理成Excel报表,发给5个部门负责人,再把汇总PDF存档。这个流程每周重复,每次1小时。用Python写个脚本,点击运行2分钟完成,而且不会出错。本教程覆盖最常用的三个场景:Excel处理、邮件发送、PDF操作。
第一步:Excel读写与格式设置
用openpyxl库操作Excel文件。基础读写:
import openpyxl
wb = openpyxl.load_workbook(‘data.xlsx’)
ws = wb.active
print(ws[‘A1’].value)
ws[‘B2’] = 100
wb.save(‘output.xlsx’)
批量写入数据:
data = [[‘产品’, ‘销量’, ‘金额’], [‘A’, 100, 5000], [‘B’, 200, 8000]]
for row in data:
ws.append(row)
设置格式(字体、颜色、边框):
from openpyxl.styles import Font, PatternFill
ws[‘A1’].font = Font(bold=True, size=12)
ws[‘A1′].fill = PatternFill(start_color=’FFFF00′, end_color=’FFFF00′, fill_type=’solid’)
第二步:批量发送个性化邮件
用smtplib发送邮件,配合email.mime构建内容:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipartmsg = MIMEMultipart()
msg[‘From’] = ‘your@email.com’
msg[‘To’] = ‘boss@company.com’
msg[‘Subject’] = ‘周报’
msg.attach(MIMEText(‘本周销售数据见附件’, ‘plain’))server = smtplib.SMTP(‘smtp.company.com’, 587)
server.starttls()
server.login(‘your@email.com’, ‘password’)
server.send_message(msg)
server.quit()
批量发送时,把收件人信息放在Excel或CSV中,循环读取并替换邮件内容中的姓名、部门等变量。
第三步:PDF合并与拆分
用PyPDF2处理PDF文件。合并多个PDF:
from PyPDF2 import PdfMerger
merger = PdfMerger()
for pdf in [‘file1.pdf’, ‘file2.pdf’, ‘file3.pdf’]:
merger.append(pdf)
merger.write(‘merged.pdf’)
merger.close()
拆分PDF(提取指定页面):
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader(‘document.pdf’)
writer = PdfWriter()
writer.add_page(reader.pages[0])
writer.write(‘page1.pdf’)
提取文字:
reader = PdfReader(‘report.pdf’)
text = ”
for page in reader.pages:
text += page.extract_text()
第四步:Word文档自动生成
用python-docx生成Word报告:
from docx import Document
doc = Document()
doc.add_heading(‘月度销售报告’, 0)
doc.add_paragraph(‘本月销售额同比增长15%,主要得益于新渠道拓展。’)
doc.add_heading(‘各区域业绩’, level=1)
table = doc.add_table(rows=3, cols=3)
table.cell(0,0).text = ‘区域’
table.cell(0,1).text = ‘销售额’
table.cell(0,2).text = ‘增长率’
doc.save(‘report.docx’)
第五步:整合成一个自动化脚本
把上述功能组合成一个完整的周报自动化脚本:
- 读取原始销售数据(Excel/CSV)
- 汇总计算(总销售额、各区域占比、Top5产品)
- 生成Excel报表(含格式和图表)
- 生成PDF版本(用于存档)
- 发送邮件给相关人员(带附件)
脚本写好后,可以用Windows任务计划程序或macOS的launchd设置定时执行,真正实现全自动。
常见问题与误区
- Excel文件被占用导致保存失败——确保Excel文件关闭后再用Python操作
- 中文乱码——文件编码设为UTF-8,openpyxl默认支持中文
- 邮件被当作垃圾邮件——添加正文内容、使用公司邮箱、避免附件过大
- PDF提取文字为空——扫描版PDF无法提取文字,需要OCR预处理
效率数据
实测:周报流程(汇总数据+生成报表+发送邮件),手动操作约45分钟,Python脚本约3分钟。月度报告生成(10个Sheet+图表+PDF),手动约2小时,脚本约5分钟。学习成本:有编程基础的人1天掌握,零基础约3天。ROI计算:每周节省40分钟,一年节省35小时,投入学习时间8小时,ROI约4倍。核心建议是:任何每周重复超过2次、步骤固定的任务,都值得用Python自动化。