Python+Word 文档自动化处理:分页、样式、表格全搞定!

大部分情况下,测试用例都是写在Jira、Ones、禅道项目管理工具上。

极少数会要求提供Word版本的用例,没办法,谁让客户都是衣食父母呢,还有要求特别高的不可抗拒的衣食父母。

再写一遍?

不可能!

Python 操作 Word 文档,用 python-docx 就够了!

先看效果!

Python+Word 文档自动化处理:分页、样式、表格全搞定!

相比手动点击、复制、排版,自动化生成 Word 文件可以大大提升效率,尤其适合测试报告、日报周报、批量生成合同等办公场景。

Python+Word 文档自动化处理:分页、样式、表格全搞定!

尽快适应变化

加油每一位


✨ 基础入门:生成 Word 文档

from docx import Document

doc = Document()
doc.add_heading("测试用例", level=1)
doc.add_paragraph("本报告由自动化程序生成。")

doc.save("BBC测试用例.docx")

Python+Word 文档自动化处理:分页、样式、表格全搞定!

生成 Word 文档


设置段落样式和字体

from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn

doc = Document()
doc.add_heading("测试用例", level=1)
doc.add_paragraph("本报告由自动化程序生成。")

para = doc.add_paragraph("正文内容,支持中文")
run = para.runs[0]
run.font.name = "微软雅黑"
run._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
run.font.size = Pt(12)

doc.save("BBC测试用例.docx")

注意:设置中文字体需要用 _element 配合 qn() 解决中文乱码问题。

Python+Word 文档自动化处理:分页、样式、表格全搞定!


插入分页符(Page Break)

from docx import Document

doc = Document()
doc.add_heading("测试用例", level=1)
doc.add_paragraph("第一页内容")

# 插入分页符
doc.add_page_break()

doc.add_paragraph("这是第二页的开头内容")

doc.save("分页演示.docx")
print("✅ Word 文档已保存,包含分页内容")

doc.save("BBC测试用例.docx")

用于内容分隔,列如封面后换页、每人一页合同等场景。

Python+Word 文档自动化处理:分页、样式、表格全搞定!


表格插入

from docx import Document

doc = Document()
doc.add_heading("测试用例", level=1)


doc.add_heading("人力资源安排", level=2)

# 创建表格(1 行 3 列:表头)
table = doc.add_table(rows=1, cols=5)
table.style = 'Table Grid'
hdr_cells = table.rows[0].cells
hdr_cells[0].text = "开始时间"
hdr_cells[1].text = "结束时间"
hdr_cells[2].text = "测试项"
hdr_cells[3].text = "负责人"
hdr_cells[4].text = "预估耗时"

# 添加数据行
row_cells = table.add_row().cells
row_cells[0].text = "2025-07-01"
row_cells[1].text = "2025-07-01"
row_cells[2].text = "冒烟测试"
row_cells[3].text = "Jay"
row_cells[4].text = "1"

# 添加数据行
row_cells = table.add_row().cells
row_cells[0].text = "2025-07-01"
row_cells[1].text = "2025-07-02"
row_cells[2].text = "API测试"
row_cells[3].text = "Tom"
row_cells[4].text = "2"

print("✅ Word 表格已生成")
doc.save("BBC测试用例.docx")

实战提议:搭配 pandas 导出数据,再用 add_row() 动态填充表格,轻松生成结构化报告。

Python+Word 文档自动化处理:分页、样式、表格全搞定!

表格插入


插入图片(如测试截图)

doc.add_picture("monty-truth.png", width=Inches(5))

# 获取最后一个段落(即刚刚插入图片的段落)
paragraph = doc.paragraphs[-1]

# 设置段前距离(例如 18 磅)
paragraph.paragraph_format.space_before = Pt(18)

搭配自动化测试截图,支持批量导出 + 插入。

Python+Word 文档自动化处理:分页、样式、表格全搞定!


实用技巧合集

Python+Word 文档自动化处理:分页、样式、表格全搞定!

实用技巧合集


场景推荐

  • 自动化测试报告生成(用例统计、截图说明)
  • 项目日报周报自动生成
  • HR 批量制作入职欢迎信/Offer 文件
  • 批量生成合同、通知、邀请函
  • 财务类 Word 报表自动填充

获取实用模板:「python-docx模板」留言评论区领取

提示:python-docx 不支持 .doc,请使用 .docx 后缀!


总结

python-docx 是办公自动化必备利器,配合 pandas、matplotlib、pytest 等工具,可以构建完整的测试报告流水线。后续还将分享:

  • Word 模板动态替换
  • 多页封面 + 目录 + 报告
  • 批量生成多个文档技巧

下期预告 unittest:内置自动化测试框架,全流程演示!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
小菲菲吖_0803的头像 - 宋马
评论 共8条

请登录后发表评论