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 | | | |

相关推荐
山风wind3 分钟前
Spring中责任链模式的工业级应用简单剖析
java·spring·责任链模式
仰望.5 分钟前
vxe-table 如何实现分页勾选复选框功能,分页后还能支持多选的选中状态
前端·vue.js·vxe-table
铅笔侠_小龙虾12 分钟前
html+css 实现键盘
前端·css·html
qq_3176203114 分钟前
001:Linux 命令速查手册
linux·运维·服务器
Element_南笙17 分钟前
BUG:ModuleNotFoundError: No module named ‘milvus_lite‘
java·服务器·数据库
licongmingli19 分钟前
vue2 基于虚拟dom的下拉选择框,保证大数据不卡顿,仿antd功能和样式
大数据·前端·javascript·vue.js·anti-design-vue
小笔学长23 分钟前
Webpack 入门:打包工具的基本使用
前端·webpack·前端开发·入门教程·前端打包优化
yyy(十一月限定版)23 分钟前
C++基础
java·开发语言·c++
Coder_Boy_24 分钟前
分布式系统设计经验总结:金融vs电商的核心差异与决策思路
java·运维·微服务·金融·电商
黎明初时25 分钟前
react基础框架搭建4-tailwindcss配置:react+router+redux+axios+Tailwind+webpack
前端·react.js·webpack·前端框架