需求:需要将一个表单的数据进行导出,导出格式有表单,也有其他不规则的内容,需要根据查询到的数据进行导出,不能有空白行,也就说所谓的表单;
这边我就把我总结好的流程分享给大家,希望能对您有所帮助;
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集合中,存放的就是我们刚才使用的实体类:
读取到模板然后进行填充,就可以了
运行代码效果图如下:
这个需求就完成辣,本人第一篇博客,谢谢支持,相关问题可以联系我,新手多多指教;