docxtpl配合Jinja2实现word中复杂表格实现

表格并且存在多行合并列的实现方式,代码和模版如下:

1、部分python代码

python 复制代码
from docxtpl import DocxTemplate

"projects":[
                {
                    "company":"XX软件",
                    "project" : [
                        {"projName":"手机银行1"},
                        {"projName":"数据中台1"},
                        {"projName":"核心系统1"}
                    ]
                },
                {
                    "company":"XX科技",
                    "project" : [
                        {"projName":"数据中台2"},
                        {"projName":"核心系统2"}
                    ]
                }
            ]

doc.render(context)
doc.save("generated_test.docx")

2、部分模版代码

|---------------------|-------------------|---|---|---|
| {%tr for p in projects%} |||||
| {%tr for proj in p.project%} |||||
| {%vm%}{{p.company}} | {{proj.projName}} | | | |
| {%tr endfor %} |||||
| {%tr endfor %} |||||

3、部分结果展示效果截图:

|------|-------|---|---|---|
| XX软件 | 手机银行1 | | | |
| XX软件 | 数据中台1 | | | |
| XX软件 | 核心系统1 | | | |
| XX科技 | 数据中台2 | | | |
| XX科技 | 核心系统2 | | | |

相关推荐
北城笑笑11 小时前
NodeJS 8 ,从 0 到 1:npm 包发布与更新全流程指南( 含多场景适配与踩坑总结 )
前端·npm·node.js·github
Mike_jia11 小时前
如何找回Harbor密码
前端
码码哈哈0.011 小时前
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚
前端·npm·node.js
浩男孩11 小时前
🍀简简单单结合 hooks 优雅使用弹窗🚀🚀
前端
江城开朗的豌豆11 小时前
Axios拦截器:给你的请求加上"双保险"!
前端·javascript·react.js
晓得迷路了11 小时前
栗子前端技术周刊第 98 期 - NPM 生态遭受攻击、Rspack 1.5.3、Storybook 10 beta...
前端·javascript·css
江城开朗的豌豆11 小时前
解密DVA:React应用的状态管理利器
前端·javascript·react.js
带娃的IT创业者11 小时前
《Python Web部署应知应会》No3:Flask网站的性能优化和实时监测深度实战
前端·python·flask
weixin_4316004411 小时前
使用 vue-virtual-scroller 实现高性能传输列表功能总结
前端·javascript·vue.js
OEC小胖胖11 小时前
App Router vs. Pages Router:我应该如何选择?
开发语言·前端·前端框架·web·next.js