文章目录

(配图建议:办公桌场景中Python代码与办公软件交互的插画)
最近被行政部的妹子追着问:“能不能帮我做个自动生成报表的工具?”(真实经历),我才发现原来这么多人都不知道Python在自动化办公领域的逆天能力!今天就带大家解锁几个超实用的办公自动化脚本,让你的工作效率原地起飞~
一、Excel处理篇(打工人必看!)
1.1 批量合并20个表格只要3行代码
from openpyxl import load_workbook
import os
def merge_excels(folder_path, output_name):
merged_wb = load_workbook(os.path.join(folder_path, os.listdir(folder_path)[0]))
for file in os.listdir(folder_path)[1:]:
wb = load_workbook(os.path.join(folder_path, file))
for sheet in wb:
merged_wb.create_sheet(title=f"{file}_{sheet.title}")
# 复制内容逻辑...
merged_wb.save(output_name)
(小技巧)用openpyxl处理xlsx文件时,记得关闭Excel程序!否则会报权限错误(血泪教训)
1.2 自动标红异常数据
from openpyxl.styles import PatternFill
red_fill = PatternFill(start_color='FFFF0000', end_color='FFFF0000', fill_type='solid')
for row in ws.iter_rows(min_row=2):
if row[3].value < 1000: # 假设第4列是销售额
for cell in row:
cell.fill = red_fill
(避坑指南)样式设置要在保存文件前完成,否则不生效!
二、PDF七十二变(领导最爱看的格式)
2.1 批量加水印
from PyPDF2 import PdfReader, PdfWriter
def add_watermark(input_pdf, output_pdf, watermark):
watermark_page = PdfReader(watermark).pages[0]
writer = PdfWriter()
for page in PdfReader(input_pdf).pages:
page.merge_page(watermark_page)
writer.add_page(page)
with open(output_pdf, "wb") as out:
writer.write(out)
(实测)这个脚本处理100页的PDF只要5秒,比某付费软件快3倍!
2.2 智能提取表格数据
import pdfplumber
with pdfplumber.open('report.pdf') as pdf:
for page in pdf.pages:
table = page.extract_table()
if table:
print(f"第{page.page_number}页发现表格:")
for row in table:
print(' | '.join(row))
(注意)表格识别准确率约85%,复杂表格建议先用Adobe Acrobat预处理
三、邮件自动化(摸鱼神器)
3.1 定时发送周报
import smtplib
from email.mime.multipart import MIMEMultipart
from datetime import date
def send_email():
msg = MIMEMultipart()
msg['From'] = 'your_email@xxx.com'
msg['To'] = 'boss@xxx.com'
msg['Subject'] = f'【{date.today()}周报】'
# 自动生成周报内容
with open('weekly_report.docx', 'rb') as f:
msg.attach(f.read())
server = smtplib.SMTP('smtp.xxx.com', 587)
server.starttls()
server.login('your_email', 'password')
server.send_message(msg)
server.quit()
(重要!!!)密码不要明文存储!建议使用环境变量或配置文件加密
四、文件管理(强迫症救星)
4.1 智能整理桌面
import shutil
from pathlib import Path
DESKTOP = Path('~/Desktop').expanduser()
for file in DESKTOP.iterdir():
if file.suffix in ['.jpg', '.png']:
shutil.move(file, DESKTOP/'图片')
elif file.suffix in ['.doc', '.docx']:
shutil.move(file, DESKTOP/'文档')
# 其他类型...
(亲测有效)配合Windows任务计划程序,设置每天18点自动整理桌面
五、综合案例:自动生成年终报告系统

(流程图示意:数据库 -> Python处理 -> Word/PPT/Excel输出)
- 从数据库提取年度数据
- 自动生成可视化图表
- 填充预设的Word模板
- 创建包含关键指标的PPT
- 打包发送给相关人员
核心代码架构:
class AnnualReport:
def __init__(self, year):
self.year = year
self.data = self._fetch_data()
def _fetch_data(self):
# 连接数据库逻辑...
def generate_word(self):
# 使用python-docx库操作Word...
def create_ppt(self):
# 使用python-pptx库生成PPT...
def send_report(self):
# 调用邮件发送功能...
六、避坑指南(新手必看!)
-
文件路径问题:
- 总是使用
os.path.join()拼接路径 - 用
Pathlib替代os模块更优雅
- 总是使用
-
编码问题:
- 处理中文文件时指定
encoding='utf-8' - 遇到编码错误尝试
errors='ignore'
- 处理中文文件时指定
-
权限问题:
- 写文件前检查文件是否被其他程序占用
- 用
try...except捕获权限异常
-
性能优化:
- 批量操作时禁用Excel的自动计算
- 使用
with语句管理资源
七、进阶路线图
-
入门阶段:掌握基本文件操作
- 推荐库:os, shutil, glob
-
中级阶段:处理办公文档
- 必学库:openpyxl, python-docx, python-pptx
-
高手阶段:自动化交互
- 神器推荐:pyautogui(控制鼠标键盘)
- 浏览器自动化:selenium
-
大师阶段:搭建自动化平台
- 使用Flask/Django开发Web界面
- 结合定时任务实现全自动流程
最近用这些脚本帮财务部小姐姐自动生成报表,她居然给我带了半个月的早餐(手动狗头)。其实Python自动化最爽的不是省时间,而是看同事对着重复工作抓狂时,你淡定地按下F5就搞定一切的成就感!
小作业:尝试把本文中的代码片段组合起来,做一个自动整理桌面+邮件通知的小系统。遇到问题欢迎在评论区交流~
8705

被折叠的 条评论
为什么被折叠?



