pip install docxtpl
2 基本用法
from docxtpl import DocxTemplatedoc = DocxTemplate(template_file) # 读取模板文件doc.render(context) # 渲染数据到模板doc.save(dst_file) # 保存已渲染的文件
template_file:模板文件(Jinja2)context:定义模板变量和渲染数据例:context={ 'var': 123}dst_file: 要保存文件到绝对路径
3 模板文件(Jinja2类语法)
{{ var }} 定义变量{% for * in ** %}{% endfor %} for循环{% if condition %}{% endif %} if判断{% vm %} 表格在for循环中垂直合并单元格{% hm %} 表格在for循环中横向合并单元格
3.1 可以移除模板标记的用法
{%p tag %} 移除段落中行的标记例: {%p for * in ** %} 渲染模板后不会占用段落{%tr tag %} 移除表格中行的标记例: {%tr for * in ** %} 渲染模板后会移除该标记的行{%tc tag %} 移除表格中列的标记
3.2 区别
from docxtpl import DocxTemplatetempfile = '123.docx'context = { 'list': [1, 2, 3]}doc = DocxTemplate(tempfile)doc.render(context)doc.save('dst.docx')
{% for i in list%}
模块文件
文件效果
{%tr for i in list %}模板文件
文件效果
4 举个例子模板文件
文件效果