分享一个使用JFinal快速完成Word报告导出的思路

最近JBolt极速开发平台里已经实现了快速按照Word模板完美导出Word报告的功能,用在客户档案类数据导出上,例如HR系统里导出员工档案报告,医疗系统里导出word报告等。

大体思路:

1、使用Word制作出xml模板

2、然后使用JFinal的模板引擎渲染数据

3、拿到渲染后的xml,包装成word二进制数据 发送给前端下载保存即可

image.png

比如下面在word中循环遍历出一个列表数据,跟HTML的表格 tr td基本一样的东西 只不过是xml而已。

模板的能力就是带着数据和模板生成最终文件内容,包装成DOC导出就行了。


image.png


导出的效果也很不错!!


image.png


image.png


image.png


推荐阅读:

你知道在2020年有哪些项目是用JFinal开发的?


评论区

akak

2021-02-19 09:49

poi-tl实现类似需求也不错

zeroabc

2021-02-19 11:45

请问office这种xml导出模板的手段有没有相关的说明资料。之前也是在jfinal论坛看到的用html模板导出Excel的方法,查了一下有这样一篇文章https://www.c-sharpcorner.com/article/creating-a-dynamic-excel-using-html/ 里面提到的一些定制样式的xml代码跟你的有点像。就是我没找到更详细更系统的描述这种设置都有哪些的说明文档。

山东小木

2021-02-20 21:22

@akak 你说的这个相当不错 我这个文章提供的是使用jfinal自身模板引擎控制xml模板的思路

亚枫

2021-02-21 11:51

导出word我们16年的时候已经做了,将xml文件变为.ftl格式,使用freemarker替换内容,再写入到.doc文件里。

山东小木

2021-02-21 21:48

@亚枫 恩 用jfinal内置模板引擎更好用

SuperEric

2021-02-22 16:53

是的,速度特别快,特别需要注意的是,填充的文本不要出现一些特殊字符,否则导致doc打不开。doc->xml后,我用Open XML SDK 2.5 Productivity Tool for Microsoft Office,一般人我不告诉他。

热门分享

扫码入社