欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

easypoi 模版导出

程序员文章站 2022-03-18 19:15:03
...
  1. 引入包
 <dependency>
   <groupId>cn.afterturn</groupId>
   <artifactId>easypoi-base</artifactId>
   <version>3.2.0</version>
</dependency>
  1. 在项目目录添加所要导出的模版文件
    easypoi 模版导出
    模版中使用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

  1. 导出代码
  //获取模版
            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());
相关标签: 杂记