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

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

模板文件:

模板文件

生成文件:

生成文件

完整代码:

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': '177@qq.com',
           '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])来确定文件名怎么写

  • 15
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写bug如流水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值