Python通过word模板生成word表格(含写入表格和图片)(不废话上代码系列)

话不多说,直接上图!!!(先图后代码,越看越清楚)

模板文件:

Python通过word模板生成word表格(含写入表格和图片)(不废话上代码系列)_第1张图片

生成文件:

Python通过word模板生成word表格(含写入表格和图片)(不废话上代码系列)_第2张图片

完整代码:

import jinja2
from docxtpl import DocxTemplate
from docxtpl import InlineImage
from docx.shared import Mm, Inches, Pt

tpl = DocxTemplate('template.docx')
context = {'user_name': '小明',
           'user_sex': '男',
           'username': '123456',
           'user_birth': '2000年11月',
           'user_phone': '123456',
           'user_email': '[email protected]',
           'user_birthplace': '山西',
           'user_unit': '13班',
           'user_photo': InlineImage(tpl, '01.jpg',width=Mm(40),height=Mm(56)),
           'app_list': [{'app_name': '奖学金', 'app_data': '2020年11月'}, {'app_name': '荣誉证书', 'app_data': '2020年1月'}]
           }
jinja_env = jinja2.Environment(autoescape=True)
tpl.render(context, jinja_env)
tpl.save('template1.docx')

代码讲解:

docxtpl库

用来对word文件进行操作,可以生成表格,生成文本内容,相当强大。而 DocxTemplate模块用于通过模版生成文件,只需体验5分钟,即可让人爱上这个模块!!!
那么,我们为什么可以放入图片呢?那就和InlineImage模块有关系啦,通过InlineImage对象我们可以将图片变成可识别内容,然后就可以成功插入。
文档地址:https://docxtpl.readthedocs.io/en/latest/

jinja2

这个库,和django模板系统类似,学Django的都知道。不过没学过也无妨,上面的链接有相关的说明。
不喜欢读英文的???来这里:https://www.w3cschool.cn/yshfid/

常见问题:

相对路径问题:
如果是不在当前目录,使用../可能会报错,可以使用:

sys.path[0]+文件名

可以尝试print(sys.path[0])来确定文件名怎么写

你可能感兴趣的:(Python,python)