使用python-docx-template操作word文档
1.python-docx-template简介
我们知道可以使用
python-docx
库来创建word文档,但是对于文档的修改功能,还可以使用另一个库
python-docx-template
可以完成对word的修改工作。
python-docx-template
模块主要依赖两个库,
python-docx
用于读取,编写和创建子文档 ,
jinja2
用于管理插入到模板docx中的标签 。 其基本思路是利用
jinja2
制作Word模板,并动态向模板中插入文字、图片、表格等内容。
安装所需要的库文件🙌
pip install docxtpl
2.创建Word文档,在文档里使用模板语言
首先创建一个word文档 test.docx,并设置好模板:
test.docx
这是一个模板:{{ template }}
这是一个Word文件
3.Python控制生成信息
这里给大家一段示例的代码,使用
Hello World!
来填充docx文件中的
{{ template }}
模板部分
from docxtpl import DocxTemplate
# 打开docx文件
tpl = DocxTemplate('test.docx')# 要装入的数据信息
context ={'template':'Hello World!'}# 填充数据
tpl.render(context)# 保存文件操作
tpl.save('test1.docx')
检验成果👍
打开test.docx文件,现在显示如下:
这是一个模板:Hello World!
这是一个Word文件
4.内嵌图片
可以动态地将一个或多个图像添加到文档中。只需
{{ xxx }}
在模板中添加标记
只需要指定模板对象,图像文件路径以及可选的宽度和/或高度。对于高度和宽度,必须使用毫米(Mm),英寸(Inches)或点(Pt)类。
现在文档是这样的:
这是一个模板:{{ template }}
这是一个Word文件
这里插入一个图片:{{ myimage }}
编写内嵌图片的Python代码:
from docxtpl import InlineImage, DocxTemplate
from docx.shared import Mm
import jinja2
# 打开docx文件
tpl = DocxTemplate('test.docx')# 要装入的数据信息
context ={'template':'Hello World!','myimage': InlineImage(tpl,'happy.jpg', width=Mm(20)),}
jinja_env = jinja2.Environment(autoescape=True)# 填充数据
tpl.render(context, jinja_env)# 保存文件操作
tpl.save('test_temp.docx')
运行结果:🙌
即使再小的帆,也能远航⛵
版权归原作者 世界尽头与你 所有, 如有侵权,请联系我们删除。