【Docx文档操作(三)】基于docxtemplater模板生成文档

一、概述

docxtemplater 插件是将文档模板结合数据生成真正文档的强大工具,对于仅数据发生变化而文档格式固定的文档生成需求,该工具非常好用。
其强大体现在以下三点:

  • 生成的文档会继承模板的字体样式。模板是什么样,生成出来的文档就是什么样,拿来即用。因为其所作的不过是把数据插入模板所在位置
  • 支持常用的模板语法。比如条件判断、数组遍历
  • 支持自定义过滤器。过滤器会在数据插入模板前执行,便于我们对数据进行二次处理,比如复杂或者 需复用的计算逻辑和判断逻辑等,都可以单独创建一个过滤器以我们更熟悉的js语法处理,同时过滤器还支持链式调用

二、如何使用docxtemplater

以下是官方文档的demo,我将结合demo逐步分析docxtemplater所做的事情。
在这里插入图片描述

1、使用docxtemplater的两个前提是docx模板文件和json数据(这里强调必须是docx,也就是doc不行,具体原因第二步会解释)。

在这里插入图片描述

2、利用PizZip包对将模板文件转换为zip包。参考DOCX文档结构分析可知docx与zip是可以相互转换的,但doc则不行,既然无法转化为zip包,自然后续模板解析和文档生成也无法实现。在这里插入图片描述

3、利用docxtemplater处理docx模板文件的zip包。其核心操作就是解压zip包并找到document.xml文件,然后找出其中所有的模板占位符,为后续数据插入做准备。

在这里插入图片描述

4、执行doc.render,顾名思义就是执行渲染操作,这里所做的就是用数据替

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值