0
点赞
收藏
分享

微信扫一扫

python-docxtpl包详解,Python处理word,docx文件。

搬砖的小木匠 2021-09-19 阅读 90
日记本

概述

  前两天,公司有需求需要生成一个安全报告,突然就想到docxtpl这个包,真的超级好用,和jinja2有相同的模板语法,也有不同之处。
  我会将一些常见操作,插入图片,逻辑循环,逻辑判断,其余请参考官方文档。
转载请标注来源,原创不易谢谢支持!
docxtpl英文手册


文字替换

这个就很简单,不做过多讲解了和jinjia2是一样的.


from docxtplimport DocxTemplate

doc = DocxTemplate('./xxxxx.docx')# 读取doc文件

data_docx = {

'create_time':'2020/11/13',

'evaluationPeople':'Nick',

}

doc.render(data_docx)# 补全数据

doc.save('result.docx')# 保存目标文件

循环生成表格


注意一定要在语法里面写tr,不写tr会有空位置表格,如果循环普通文本无需增加tr或者可以使用{%p for i in alerts%}

from docxtplimport DocxTemplate

doc = DocxTemplate('./xxxxx.docx')# 读取doc文件

data_docx = {
'alerts': [
    {'name': '百度', 'v': '1.3.5', 'url': 'https://www.baidu.com'},
    {'name': '测试地址', 'v': '1.0', 'url': '0.0.0.0'},
],
}

doc.render(data_docx)# 补全数据

doc.save('result.docx')# 保存目标文件

逻辑判断

插入图片

from docxtpl import DocxTemplate, InlineImage
doc = DocxTemplate('./xxxx.docx') 
data_docx = {
'img': [
  #需要使用这个方法来添加图片 
  InlineImage(doc, './a.png'),
  ]
}
doc.render(data_doc)  # 填充数据
doc.save('demo.docx')  # 保存目标文件

这个包还有很多操作肯定不止于这些,例如替换图片,table columns,runs......,下面是英文官方文档,可以参考官方文档。
docxtpl英文手册

如有疑问可以留言,有时间会为你解答。

举报

相关推荐

0 条评论