参考文章 http://www.ksqn.cn/news/1333.html
好久木有更新啦
抓住2023的小尾巴
浅浅更新一下吧~
最近做了一个动态生成excel的功能,这里记录下部分功能,主要用到的是freemarker框架,spring就有带,我起的demo载入了一下freemarker的jar包
一、创建模板
首先可以创建一个excel,编辑自己想要的模板,这里举个简单的例子
编写好后可以保存一下,然后再保存为.xml格式的文件,就能得到模板雏形
大概是长这样
然后根据ftl文件的语法,我们可以对模板进行改造,加入自己需要的字段
这里列举一些常见的方式
1、普通字段填充
<Cell ss:StyleID="s17"><Data ss:Type="String">姓名</Data></Cell>
<Cell ss:StyleID="s17"><Data ss:Type="String">${(name)!}</Data></Cell>
2、日期填充,java传入的参数类型为Date
<Cell ss:Index="2" ss:StyleID="s17"><Data ss:Type="String">出生年月</Data></Cell><Cell ss:StyleID="s17"><#if birth??><Data ss:Type="String">${birth?string("yyyy-MM-dd")}</Data></#if></Cell>
3、switch case选择用法
<Cell ss:StyleID="s17"><Data ss:Type="String">国籍</Data></Cell><Cell ss:StyleID="s17"><#if certType??><#switch certType> <#case "A"> <Data ss:Type="String">■身份证 □外籍护照 □港澳居民来往内地通行证</Data><#break> <#case "B"> <Data ss:Type="String">□身份证 ■外籍护照 □港澳居民来往内地通行证</Data><#break> <#case "C"> <Data ss:Type="String">□身份证 □外籍护照 ■港澳居民来往内地通行证</Data><#break> <#default> </#switch><#else><Data ss:Type="String">□身份证 □外籍护照 □港澳居民来往内地通行证</Data></#if></Cell>
4、数组对象展示
(这边我做的这个主要是因为有动态展示的需求,如果没有家属信息,就不展示家属单元格)
<#list spouseInfos as row><Ro