Python使用python-docx库自动生成Word文档教程
本文介绍如何利用Python的python-docx库自动生成Word文档。通过安装该第三方库,用户可以创建文档对象、设置页面格式、添加段落、表格及图像,并保存为.docx文件。教程涵盖基础用法及详细代码示例,适用于需要批量生成文档的自动化场景。
python-docx库简介与安装
实现这一功能需要借助第三方库。
请执行以下命令进行安装:
pip install python-docx
文档生成的基本流程
使用该库生成文档的基本流程如下:
首先,创建一个文档对象。系统可自动使用默认模板,也可基于已有文件构建。
其次,配置文档格式,包括默认字体和页面边距等参数。
接着,在文档对象中插入段落文本、表格或图像,并可指定具体样式。
最后,保存生成的文档。
注意:该库仅支持生成Word 2007及后续版本的文档格式,即扩展名为.docx的文件。
详细操作步骤与代码示例
以下将分步骤介绍其具体使用方法:
创建文档对象
第一步:
from docx import Document
doc = Document() #以默认模板建立文档对象
doc = Document('a.docx') # 读取a.docx文档,建立文档对象
设置文档格式
第二步:
from docx.shared import Inches,Pt
def chg_font(obj,fontname='微软雅黑',size=None):
## 设置字体函数
obj.font.name = fontname
obj._element.rPr.rFonts.set(qn('w:eastAsia'),fontname)
if size and isinstance(size,Pt):
obj.font.size = size
distance = Inches(0.3)
sec = doc.sections[0] # sections对应文档中的“节”
sec.left_margin = distance # 以下依次设置左、右、上、下页面边距
sec.right_margin = distance
sec.top_margin = distance
sec.bottom_margin = distance
sec.page_width =Inches(12) #设置页面宽度
sec.page_height = Inches(20) #设置页面高度
##设置默认字体
chg_font(doc.styles['Normal'],fontname='宋体')
添加内容与保存文档
第三步:
段落文本与格式设置
1. 添加段落文本
paragraph =doc.add_paragraph('text....')
ph_format =paragraph.paragraph_format
ph_format.space_before =Pt(10) #设置段前间距
ph_format.space_after =Pt(12) #设置段后间距
ph_format.line_spacing=Pt(19) #设置行间距
若需在同一段落内设置不同的文本格式,必须使用Run对象。Run对象允许对段落内的特定文本块单独设置格式。
例如:
run = paragraph.add_run('text...')
run.bold = True #设置字体为粗体
chg_font(run,fontname='微软雅黑', size=Pt(12)) #设置字体和字号
表格与图像插入
2. 添加表格并写入内容
tab =doc.add_table(rows=4,cols=4) #添加一个4行4列的空表
cell=tab.cell(1,3) #获取某单元格对象(从0开始索引)
在单元格中添加文本的方法如下:
cell.text='abc'
在单元格中添加多行文本(需指定换行符)
ph =cell.paragraphs[0]
run=ph.add_run(‘text....')'
run.add_break() # 添加一个折行
run.add_picture('a.png') # 插入图像,可以是内存中的图像,width=Inches(1.0)指定宽度。
3. 在文档中插入图像:
doc.add_picture('a.png')
第四步:
doc.save('a.docx') # 保存文档
进行简单测试发现,生成文档的速度较快,相比以往使用reportlab库生成PDF文档的方式,效率有明显提升。
下图展示了使用此方式生成的.docx文档截图:

以上关于使用Python自动生成Word文档的教程内容到此结束,希望能提供有益参考。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









