一、 word文件的创建
需要安装包:python-docx
例1:创建word文件
from docx import Document# 创建doc对象
doc = Document()# 指定路径下创建一个docx文件
doc.save('./dataFile/test1_doc.docx')
运行结果:
例2:word中添加内容
添加一级标题
from docx import Document
# 导入段落
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
# 导入单位:Mm毫米,Inches英寸,Pt像素
from docx.shared import Mm, Inches, Pt# 创建doc对象
doc = Document()
# 添加一级标题,0代表一级
title = doc.add_heading("2024年年终述职", 0)# 设置段落格式(paragraph_format)对齐方式(alignment)为居中(WD_PARAGRAPH_ALIGNMENT.CENTER)
title.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER# 指定路径下创建一个docx文件
doc.save('./dataFile/test1_doc.docx')
运行结果:
居中对齐、左对齐、右对齐
# 设置段落格式(paragraph_format)对齐方式(alignment)为居中(WD_PARAGRAPH_ALIGNMENT.CENTER)
title.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# 左对齐
title.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
# 右对齐
title.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
添加章节list
# 添加段落和内容
doc.add_paragraph('年终总结共包含三个部分')
# 添加列表
doc.add_paragraph('工作内容', style='List Number')
doc.add_paragraph('工作的不足', style='List Number')
doc.add_paragraph('工作计划', style='List Number')
运行结果:
添加每个章节的内容 :
# 分别添加每个小点的内容
doc.add_heading('工作内容', 1)oper_bug = 101
net_bug = 202
pro_bug = 303
stu_bug = 404
pg1 = doc.add_paragraph('主要包含项目:运维管理系统,共提交bug{:,}个。网管系统,共提交bug{:,}个。项目管理系统,共提交bug{:,}个。学生管理系统,共提交bug{:,}个。'.format(oper_bug,net_bug,pro_bug,stu_bug))doc.add_heading('工作计划',1)
pg2 = doc.add_paragraph('本年度在复杂场景测试覆盖(如支付超时场景)和自动化测试框架维护上存在不足,导致部分版本回归测试周期较长。')doc.add_heading('工作的不足', 1)
doc.add_paragraph('完善测试用例库,覆盖更多边界场景(如异常数据、并发操作)。', style='List Bullet')
doc.add_paragraph('引入“探索性测试”补充传统用例设计,增强对隐性需求的挖掘。', style='List Bullet')
doc.add_paragraph('定期开展缺陷复盘会议,分析Top 3高频缺陷类型并针对性优化用例。', style='List Bullet')
运行结果:
段落左侧缩进5毫米
# 段落左侧缩进
pg1.paragraph_format.left_indent = Mm(5)
运行结果:
添加图片:
# 添加图片
doc.add_paragraph('参考下图:')
doc.add_picture('./image/1.png', width=Inches(4.5))
运行结果:
添加表格,并向表格中添加数据:
方法一:
# 添加表格
doc.add_heading('表格分析', 1)
# 两行三列
table1 = doc.add_table(1, 2)
# 第一行的所有列
cells = table1.rows[0].cells
# 一次向第一行的每个单元格赋值
cells[0].text = '项目名称'
cells[1].text = 'bug数量'
运行结果:
方法二:
通过循环向表格中注入数据
# 表内的数据
records = [['项目A', '101'],['项目B', '202'],['项目C', '303'],['项目D', '404'],['项目E', '505'],['项目F', '606']
]
# 将表内的数据循环赋值给表
for name, count in records:cells = table1.add_row().cellscells[0].text = namecells[1].text = count
运行结果:
字体样式的设置:
sign = doc.add_paragraph()
sign.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
# 加粗显示
sign.add_run("日期:").bold = True
sign.add_run("2024年12月31日")sign = doc.add_paragraph()
sign.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
style = sign.add_run("姓名:张三")
# 设置字体样式
style.font.name = 'Times New Roman'
# 字体大小
style.font.size = Pt(16)
# 设置斜体
style.italic = True
# 设置下划线
style.underline = True
# 设置字体颜色
style.font.color.rgb = RGBColor(0, 255, 0)
运行结果:
强制增加一页
# 强制增加一页
doc.add_page_break()
运行结果:
完整编码:
from docx import Document# 导入段落
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT# 导入单位:Mm毫米,Inches英寸,Pt像素
from docx.shared import Mm, Inches, Pt, RGBColor# 导入段落
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT# 导入单位:Mm毫米,Inches英寸,Pt像素
from docx.shared import Mm, Inches, Pt# 创建doc对象
doc = Document()
# 添加一级标题,0代表一级
title = doc.add_heading("2024年年终述职", 0)# 设置段落格式(paragraph_format)对齐方式(alignment)为居中(WD_PARAGRAPH_ALIGNMENT.CENTER)
title.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# # 左对齐
# title.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
# # 右对齐
# title.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT# 添加段落和内容
doc.add_paragraph("年终总结共包含三个部分")
# 添加列表
doc.add_paragraph("工作内容", style="List Number")
doc.add_paragraph("工作的不足", style="List Number")
doc.add_paragraph("工作计划", style="List Number")# 分别添加每个小点的内容
doc.add_heading("工作内容", 1)oper_bug = 101
net_bug = 202
pro_bug = 303
stu_bug = 404
pg1 = doc.add_paragraph("主要包含项目:运维管理系统,共提交bug{:,}个。网管系统,共提交bug{:,}个。项目管理系统,共提交bug{:,}个。学生管理系统,共提交bug{:,}个。".format(oper_bug, net_bug, pro_bug, stu_bug)
)
# 段落左侧缩进
pg1.paragraph_format.left_indent = Mm(5)doc.add_heading("工作计划", 1)
pg2 = doc.add_paragraph("本年度在复杂场景测试覆盖(如支付超时场景)和自动化测试框架维护上存在不足,导致部分版本回归测试周期较长。"
)
pg2.paragraph_format.left_indent = Mm(5)# 不同格式的List
doc.add_heading("工作的不足", 1)
doc.add_paragraph("完善测试用例库,覆盖更多边界场景(如异常数据、并发操作)。", style="List Bullet"
)
doc.add_paragraph("引入“探索性测试”补充传统用例设计,增强对隐性需求的挖掘。", style="List Bullet"
)
doc.add_paragraph("定期开展缺陷复盘会议,分析Top 3高频缺陷类型并针对性优化用例。", style="List Bullet"
)
# pg3.paragraph_format.left_indent = Mm(5)# 添加图片
doc.add_paragraph("参考下图:")
doc.add_picture("./image/1.png", width=Inches(4.5))# 添加表格
doc.add_heading("表格分析", 1)
# 两行三列
table1 = doc.add_table(1, 2)
# 第一行的所有列
cells = table1.rows[0].cells
# 一次向第一行的每个单元格赋值
cells[0].text = "项目名称"
cells[1].text = "bug数量"# 表内的数据
records = [["项目A", "101"],["项目B", "202"],["项目C", "303"],["项目D", "404"],["项目E", "505"],["项目F", "606"],
]
# 将表内的数据循环赋值给表
for name, count in records:cells = table1.add_row().cellscells[0].text = namecells[1].text = countsign = doc.add_paragraph()
sign = doc.add_paragraph()# 强制增加一页
doc.add_page_break()sign = doc.add_paragraph()
sign.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
# 加粗显示
sign.add_run("日期:").bold = True
sign.add_run("2024年12月31日")sign = doc.add_paragraph()
sign.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
style = sign.add_run("姓名:张三")
# 设置字体样式
style.font.name = "Times New Roman"
# 字体大小
style.font.size = Pt(16)
# 设置斜体
style.italic = True
# 设置下划线
style.underline = True
# 设置字体颜色
style.font.color.rgb = RGBColor(0, 255, 0)# 指定路径下创建一个docx文件
doc.save("./dataFile/test1_doc.docx")