你是否经常在 Excel 和 PPT 之间重复性搬砖?是否每次制作证书、提取内容、编辑模板都耗费大量时间?
今天给大家分享 三段 Python 办公自动化实战技巧,解决现实办公中的具体问题,真正做到 "一键批量处理 + 稳定可复用"!
本文内容包括:
-
✅ Excel 多 Sheet 批量修改
-
✅ PPT 自动生成荣誉证书
-
✅ PPT 文本内容提取并生成 TXT & Word 报告
✨ Demo 1:批量修改 Excel 中每个工作表的指定单元格
📌 场景背景:
有一个包含多个工作表的 Excel 文件(比如每个表是一个部门或班级的数据),现在我们需要给每个表格的 A4 单元格 添加一个统一的标识或批注,比如写入“测试代码”。
✅ 实现思路:
-
使用
openpyxl加载 Excel 文件; -
遍历所有工作表;
-
修改每个表格中指定单元格的值;
-
保存修改。
🔍 关键代码:
from openpyxl import load_workbook
wb = load_workbook("test.xlsx")
for sheet_name in wb.sheetnames: # 获取所有工作表名
ws = wb[sheet_name]
ws['A4'].value = "测试代码" # 统一写入内容
wb.save("test.xlsx")
💡 小提示:
-
如果使用的是新版
openpyxl,推荐用wb.sheetnames替代老版本的get_sheet_names()。 -
你可以自由更换单元格位置,比如
B2,C5等。
🖼️【结果展示区】
🏆 Demo 2:批量生成 PPT 荣誉证书(根据 Excel 名单自动填充)
📌 场景背景:
有一张班级名单 Excel 表格,每行包含 班级 + 姓名,需要根据模板批量生成荣誉证书(每位同学一页 PPT),手动复制粘贴显然非常低效。
✅ 实现步骤:
第一步:标记模板中的占位符
使用 PowerPoint 编辑荣誉证书模板,并使用如下代码识别所有占位符的编号:
from pptx import Presentation
prs = Presentation('data/荣誉证书模板.pptx')
slide = prs.slides.add_slide(prs.slide_layouts[0])
for ph in slide.placeholders:
print(ph.placeholder_format.idx) # 输出占位符 ID
✅ 建议把编号写到对应占位符中,方便后续确认哪些编号代表姓名、学校、日期等信息。
第二步:读取 Excel 名单并生成证书
from openpyxl import load_workbook
from pptx import Presentation
wb = load_workbook("data/名单.xlsx")
ws = wb.active
data = {}
for row in range(2, ws.max_row + 1):
class_id = ws[f'A{row}'].value
name = ws[f'B{row}'].value
data.setdefault(class_id, []).append(name)
随后,根据模板和编号,依次为每个学生生成证书:
prs = Presentation('data/荣誉证书模板.pptx')
slide_layout = prs.slide_layouts[0]
for class_id in data:
for name in data[class_id]:
slide = prs.slides.add_slide(slide_layout)
slide.placeholders[10].text = f"{class_id} 班 {name} 同学:"
slide.placeholders[11].text = "在本学期表现优异,获得"
slide.placeholders[12].text = "“优秀学生”称号"
slide.placeholders[13].text = "特发此证,以资鼓励。"
slide.placeholders[14].text = "XX小学"
slide.placeholders[15].text = "2025年6月"
prs.save('data/荣誉证书(总).pptx')
🖼️【结果展示区】
📘 Demo 3:PPT 文本内容批量提取,并生成 TXT + Word 文档
📌 场景背景:
你是否遇到过这样的需求:拿到一个培训课件 PPT,希望整理成文字讲义或会议纪要?
用手复制粘贴又慢又容易漏,Python 来帮你搞定!
✅ 实现步骤:
第一步:提取 PPT 中所有文本
from pptx import Presentation
prs = Presentation('data/制造业必修课.pptx')
data = []
for slide in prs.slides:
for shape in slide.shapes:
if shape.has_text_frame:
for paragraph in shape.text_frame.paragraphs:
data.append(paragraph.text)
第二步:写入 TXT 文件(纯文本输出)
with open('data/制造业必修课.txt', 'w', encoding='utf-8') as f:
for line in data:
f.write(line + '\n')
第三步:写入 Word 文件(格式化输出)
import docx
doc = docx.Document()
for line in data:
doc.add_paragraph(line)
doc.save('data/制造业必修课.docx')
🖼️【结果展示区】
✅ 总结
| Demo | 功能 | 涉及模块 | 场景 |
|---|---|---|---|
| Demo 1 | 批量修改 Excel 单元格 | openpyxl | 批注、标记、初始化 |
| Demo 2 | PPT 批量生成证书 | openpyxl, pptx, time | 自动化表彰、毕业证 |
| Demo 3 | 提取 PPT 文本生成 TXT/Word | pptx, docx | 讲义提取、报告整理 |
更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2
如果你觉得这些技巧对你有帮助,欢迎点赞 + 收藏 + 关注,一起成为办公自动化达人!
👉 后续我还会分享更多实战技巧,比如 PDF 批处理、OCR 识别、邮件群发 等,敬请期待!




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



