当前位置:首页>python>不会用 Python 自动生成 Word 报告,你还在手动排版到几点?

不会用 Python 自动生成 Word 报告,你还在手动排版到几点?

  • 2026-09-07 09:36:59
不会用 Python 自动生成 Word 报告,你还在手动排版到几点?

每周五,你是不是还在填周报——复制模板、改名字、调格式,20 份改到眼花?其实 Python 自动生成 Word 报告,20 份周报 10 分钟一键出炉,泡杯咖啡回来就齐了。

很多周报内容都差不多,区别就是名字和几行数据。这种"换汤不换药"的重复活,最该交给 Python。配套代码关注后回复「实战02」领取,省得逐行手敲。

一、装上 python-docx

报告用 python-docx,专门建/改 Word(.docx),免费开源,不依赖本机 Office。

pip install python-docx
只支持 .docx,老版 .doc 先在 Word 里"另存为"再喂给脚本。

二、读数据:报告从哪来

数据通常来自一张 Excel,用 openpyxl 读进来(上篇讲过,这里快速复习):

from openpyxl import load_workbookwb = load_workbook("周报数据.xlsx")ws = wb.activerows = [r for r in ws.iter_rows(min_row=2, values_only=True)]print("共读到", len(rows), "条数据")
values_only=True只拿值不带格式,干净利落。

三、先写一份试试

别急着批量,先把"一份"跑通:

from docx import Documentdoc = Document()doc.add_heading("项目周报", level=0)doc.add_paragraph("汇报人:张三")doc.add_heading("一、本周完成", level=1)doc.add_paragraph("1. 完成登录模块开发")doc.save("周报_张三.docx")

四、批量套模板:20 份 10 分钟

把"一份"包进循环,名字、内容自动换:

from docx import Documentrows = [["张三", "完成登录模块", "开发支付模块"],        ["李四", "修复数据同步", "优化接口性能"]]   # 实际从 Excel 读for name, done, plan in rows:    doc = Document()    doc.add_heading(f"{name} 的周报", level=0)    doc.add_paragraph(f"汇报人:{name}")    doc.add_heading("一、本周完成", level=1)    doc.add_paragraph(done)    doc.add_heading("二、下周计划", level=1)    doc.add_paragraph(plan)    doc.save(f"{name}_周报.docx")

每次循环都新建 Document(),保证每份报告干净不串味。第一次先用 2 条试运行,确认对得上再上全量。

报告里想塞表格也简单:

table = doc.add_table(rows=1, cols=3)hdr = table.rows[0].cellshdr[0].text, hdr[1].text, hdr[2].text = "任务", "负责人", "状态"for t in [["登录", "张三", "完成"], ["支付", "李四", "进行中"]]:    c = table.add_row().cells    c[0].text, c[1].text, c[2].text = t

迷你故事:项目经理老周的"周五自由"

老周带 8 人小组,每周五最头疼收周报,以前先发模板、再一个个改格式,常弄到晚上八九点。我给他搭了这个循环脚本,数据从团队在线表导成 Excel,一键生成 8 份。他第一次跑完盯着文件夹愣了三秒:"这就完了?"现在他周五下午做真正的管理,上个月还靠这个交了份 8 人月报合集被点名表扬。

如果今天的脚本帮你省了 1 小时,点【关注】,下周教你生成完自动发邮件——报告出炉直接飞进对方邮箱。

回复「实战02」领 10 个可直接跑的脚本,Word 报告生成全套都打包在里面,复制就能用。

推荐阅读:

不会用 Python 批量处理 Excel,你还在手动复制粘贴到几点?

不会写 Python 第一个程序?3 行代码让你跑通

最新文章

随机文章