SpringBoot动态导出word文档实整教程(复制即可使用)
背景
最近有一个需求是需要动态导出合同、订单等信息,导出一个word文档供客户进行下载查看。
需要导出的word文件,主要可以分为两种类型。
导出固定内容和图片的word文档导出表格内容不固定的word文档
经过对比工具,我实践过两种实现方式。第一种是FreeMarker模板来进行填充;第二种就是文中介绍的POI-TL。
这里我推荐使用POI-TL。
介绍
POI-TL是word模板引擎,基于Apache POI,提供更友好的API。
目前最新的版本是1.12.X,POI对应版本是5.2.2。
这里需要注意的是POI和POI-TL有一个对应的关系。
准备工作
我使用的POI-TL版本是1.10.0
快速开始
流程:制作模板->提供数据->渲染模板->下载word
注意:需要填充的数据需要使用{{}}来表示。
1. 导出固定内容和图片的word文档
准备模板
模板保存为docx格式,存放在resource目录下
提供数据
工具方法
编写接口
对于图片的格式,POI-TL也提供了几种方式来提供支撑。
测试
请求接口::1000/file/genera
效果如下:
2. 导出表格内容不固定的word文档
表格动态内容填充,POI-TL提供了3种方式。
表格行循环表格列循环动态表格。
第二种和第三种都可以实现表格填充,但我个人感觉第一种更方便一点,这里我只介绍【表格行循环】实现方式。
LoopRowTableRenderPolicy 是一个特定场景的插件,根据集合数据循环表格行。
注意:
模板中有两个list,这两个list需要置于循环行的上一行。循环行设置要循环的标签和内容,注意此时的标签应该使用[]
准备模板
提供数据
学生实体类
学生word类
表格数据
编写接口
测试
请求接口::1000/file/dynamicTable
效果如下:
总结
到此这篇关于SpringBoot动态导出word文档实整教程的文章就介绍到这了,更多相关SpringBoot动态导出word文档内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
栏目分类
- CAJ中文网
- CAJ中文网