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

相关推荐
小技与小术5 分钟前
lvs-nat模式实验详解
linux·运维·服务器·网络·lvs
繁依Fanyi5 分钟前
828华为云征文|华为Flexus云服务器搭建OnlyOffice私有化在线办公套件
服务器·开发语言·前端·python·算法·华为·华为云
邂逅自己9 分钟前
Java入门程序-HelloWorld
java·开发语言
叫我小鹏呀13 分钟前
vue3中el-table中点击图片放大时,被表格覆盖
前端·javascript·vue.js
我命由我1234521 分钟前
2.使用 VSCode 过程中的英语积累 - Edit 菜单(每一次重点积累 5 个单词)
前端·javascript·ide·vscode·学习·编辑器·学习方法
SkyrimCitadelValinor25 分钟前
Java【泛型】
java
java_heartLake26 分钟前
设计模式之工厂方法模式
java·设计模式·工厂方法模式
Flying_Fish_roe36 分钟前
linux-网络管理-防火墙配置
linux·运维·服务器
四季予你6640 分钟前
vue2 和 vue3 的区别
前端·javascript·vue.js