easypoi 模版导出
程序员文章站
2022-03-18 19:15:03
...
- 引入包
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
- 在项目目录添加所要导出的模版文件
模版中使用easypoi 提供的模版指令
模板是处理复杂Excel的简单方法,复杂的Excel样式,可以用Excel直接编辑,完美的避开了代码编写样式的雷区,同时指令的支持,也提了模板的有效性
下面列举下EasyPoi支持的指令以及作用,最主要的就是各种fe的用法
空格分割
三目运算 {{test ? obj:obj2}}
n: 表示 这个cell是数值类型 {{n:}}
le: 代表长度{{le:()}} 在if/else 运用{{le:() > 8 ? obj1 : obj2}}
fd: 格式化时间 {{fd:(obj;yyyy-MM-dd)}}
fn: 格式化数字 {{fn:(obj;###.00)}}
fe: 遍历数据,创建row
!fe: 遍历数据不创建row
$fe: 下移插入,把当前行,下面的行全部下移.size()行,然后插入
#fe: 横向遍历
v_fe: 横向遍历值
!if: 删除当前列 {{!if:(test)}}
单引号表示常量值 ‘’ 比如’1’ 那么输出的就是 1
&NULL& 空格
]] 换行符 多行遍历导出
sum: 统计数据
整体风格和el表达式类似,大家应该也比较熟悉
采用的写法是{{}}代表表达式,然后根据表达式里面的数据取值
关于样式问题
easypoi不会改变excel原有的样式,如果是遍历,easypoi会根据模板的那一行样式进行复制
详细请参考easypoi文档http://easypoi.mydoc.io/#category_49972
- 导出代码
//获取模版
TemplateExportParams params = new TemplateExportParams("doc/template.xlsx");
Map<String, Object> map = new HashMap<String, Object>();
map.put("number", compilingProcess.getNumber());
map.put("remark", compilingProcess.getRemark());
List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
Map<String, String> lm = new HashMap<String, String>();
lm.put("id", "123523562142");
lm.put("name", "1255");
listMap.add(lm);
map.put("mapList", listMap);
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
response.setContentType("application/force-download");// 设置强制下载不打开
response.addHeader("Content-Disposition", "attachment;fileName=production.xls");// 设置文件名
workbook.write(response.getOutputStream());