用 Python 写一个自动化办公脚本
背景:每个月底都要处理几十张格式不一的 Excel 报表,还要手动汇总数据、调整格式并发送邮件。这种重复性工作不仅耗时,还容易出错,最适合交给 Python 来处理。今天分享一个我最近写的自动化脚本思路。
1. 环境搭建与核心库选择
处理 Excel 主要用到 pandas 和 openpyxl。如果涉及到格式复杂的报表(如合并单元格、设置颜色),openpyxl 更灵活;如果是纯数据分析和汇总,pandas 效率极高。通常我们会结合使用:
pip install pandas openpyxl
2. 核心代码逻辑
以下是一个批量读取销售数据并自动汇总的示例:
import pandas as pd
import os
# 1. 读取数据(自动处理表头)
df = pd.read_excel('sales_data.xlsx')
# 2. 数据清洗:删除空值,转换日期格式
df.dropna(inplace=True)
df['日期'] = pd.to_datetime(df['日期'])
# 3. 核心计算:新增销售额列,并按区域汇总
df['销售额'] = df['销量'] * df['单价']
summary = df.groupby('区域')['销售额'].sum().reset_index()
# 4. 导出结果
summary.to_excel('monthly_report.xlsx', index=False)
3. 踩坑记录:编码与路径问题
在读取旧版 CSV 文件时,经常遇到 UnicodeDecodeError。这是因为文件可能是 GBK 编码而非 UTF-8。解决方法是在读取时指定编码:
df = pd.read_csv('data.csv', encoding='gbk')
另外,在 Windows 系统下拼接文件路径时,不要手动用 + 号拼接字符串,推荐使用 os.path.join() 方法,这样可以完美兼容不同操作系统的斜杠问题。
4. 自动发送邮件
使用 Python 内置的 smtplib 库可以轻松实现邮件发送。记得在邮箱设置里开启 SMTP 服务并获取授权码,不要直接使用登录密码。结合 email.mime 模块,还可以将生成的 Excel 作为附件自动发送。