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

相关推荐
lee_curry几秒前
线程中断,等待,唤醒与ThreadLocal
java·线程·juc·threadlocal·中断
猫头虎3 分钟前
楚存科技CSD32GAZIGY SD NAND贴片式TF卡深度评测:小身材大容量,嵌入式存储新选择
linux·服务器·网络·人工智能·windows·科技·芯片
indexsunny6 分钟前
互联网大厂Java面试实战:Spring Boot微服务与Kafka消息队列深度解析
java·spring boot·微服务·面试·kafka·消息队列·电商
IMPYLH7 分钟前
Linux 的 sha512sum 命令
linux·运维·服务器·bash·哈希算法·散列表
得物技术9 分钟前
AI驱动:从运营行为到自动化用例的智能化实践|得物技术
前端·ai编程·全栈
前端那点事10 分钟前
Vue并发控制|几十个请求高效管控(实战方案+可运行代码)
前端·vue.js
妄想出头的工业炼药师13 分钟前
后端优化MS mapping
前端
前端那点事17 分钟前
Vue大批量接口请求优化|告别卡顿、超时!前端落地实战指南
前端·vue.js
史迪仔011220 分钟前
[QML] Qt Quick Dialogs 模块使用指南
开发语言·前端·c++·qt
杨凯凡21 分钟前
【019】IO/NIO 概念:Web 开发要掌握到什么程度
java·开发语言·nio