最近做了一个动态生成excel的功能,这里记录下部分功能,主要用到的是freemarker框架,spring就有带,我起的demo载入了一下freemarker的jar包
一、创建模板
首先可以创建一个excel,编辑自己想要的模板,这里举个简单的例子
编写好后可以保存一下,然后再保存为.xml格式的文件,就能得到模板雏形
大概是长这样
然后根据ftl文件的语法,我们可以对模板进行改造,加入自己需要的字段
这里列举一些常见的方式
1、普通字段填充
2、日期填充,java传入的参数类型为Date
3、switch case选择用法
4、数组对象展示
(这边我做的这个主要是因为有动态展示的需求,如果没有家属信息,就不展示家属单元格)
这里需要注意如果使用了数组动态展示需要计算行数
可以把xml文件里的ExpandedRowCount参数进行修改,加入totalRowCount参数标记行数
在java程序中需要动态计算这个行数
模板制作好以后保存再修改文件格式名称为.ftl即可
主体部分为
二、生成文件
生成文件的主要java代码如下
写个简单的类测试一下
1、如果不需要展示List对象的数据,可以存一个空数组到Map,本文为例,家属信息为列表对象
使用test01数据效果如图
使用test02数据效果如图
到此这篇关于java freemarker实现动态生成excel文件的文章就介绍到这了,更多相关java freemarker生成excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!