使用freemaker导出数据到word中,包含表单,需要根据数据条数进行轮询添加

需求:需要将一个表单的数据进行导出,导出格式有表单,也有其他不规则的内容,需要根据查询到的数据进行导出,不能有空白行,也就说所谓的表单;

这边我就把我总结好的流程分享给大家,希望能对您有所帮助;

1、首先就是需要准备freemaker使用需要的环境和依赖,我这边就不细说了,网上有很多(PS:有点复杂,偷个懒)

2、准备ftl模板--也就是将查询到的数据填充到什么地方,制作模板;

例如:需求这样

 需要将数据一条一条查入

我们制作的时候,只保留一条,填写el表达式

创建对应的实体类,我一般习惯创建两个,一个存放循环数据,一个存放其他数据,这边写的l和a,只是为了方便人添加数据使用,我为了方便使用拼音;

另存为xml格式

手动将xml后缀改为ftl 

这样模板就制作好了,直接粘贴到项目中指定位置,不固定能找到就可以,导入项目中会发生以下情况:(可以中使用Ctrl+Atl+L进行格式化后,方便阅读)

我们手动修改为(修改时参考其他目录层级,标签比较多,容易混淆) 多余部分删除,

在需要循环的位置前后添加以下内容

as,后面表示每条数据的别名,与模板中的一致,前面表示传入数据的key

制作模板就完成了;

3.填充数据, 查询到相应的数据进行添加,准备一个msp集合传递数据

Map<String, Object> map = new HashMap<String, Object>();

设置生成的word编码和名称,已经是来写入数据的字符流对象

 将查询到的数据准备好,key要与ftl文件中的一致,如下图

表单数据存放在list集合中,存放的就是我们刚才使用的实体类:

读取到模板然后进行填充,就可以了

 运行代码效果图如下:

这个需求就完成辣,本人第一篇博客,谢谢支持,相关问题可以联系我,新手多多指教; 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值