Python使用python-docx库自动生成Word文档教程

Ryan
Ryan
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍如何利用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文档的教程内容到此结束,希望能提供有益参考。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表