EasyPO — — 模板操作

1、为什么使用Excel模板。

当导出的的Excel表格样式比较复杂时,如果使用代码导出就会十分复杂。因此,可以先定义一个Excel模板,然后通过EasyPOI的模板指令快速导出。

2、EasyPOI模板指令。

  • 空格分割
  • 取值:{{参数名}}
  • 三目运算 {{test ? obj:obj2}}
  • n: 表示 这个cell是数值类型(obj必须是数字,否则报错,可以与fn结合使用 -- {{n:fn:("100";###.00)}}):{{n:obj}}
  • le: 代表长度{{le:()}} 在if/else 运用{{le:() > 8 ? obj1 : obj2}}
  • fd: 格式化时间(将数据-obj格式化成指定时间格式的数据) {{fd:(obj;yyyy-MM-dd)}}
  • fn: 格式化数字(将obj格式化成;后边的数值格式) {{fn:(obj;###.00)}}
  • fe: 遍历数据,创建row
  • !fe: 遍历数据不创建row
  • $fe: 下移插入,把当前行,下面的行全部下移.size()行,然后插入
  • #fe: 横向遍历
  • v_fe: 横向遍历值
  • !if: 删除当前列 {{!if:(test)}}
  • 单引号表示常量值 '' 比如'1' 那么输出的就是 1
  • &NULL& 空格
  • ]] 换行符 多行遍历导出
  • sum: 统计数据

整体以{{指令}}为基础,与EL表达式类似。

3、代码

public class Test {
    
    public void export(HttpServletResponse response) {
        try {
            // 1、获取Excel模板
            TemplateExportParams params = new TemplateExportParams("static/excelTemplate/test.xls");
            // 2、封装导出数据(基于map集合)
            Map<String, Object> map = new HashMap<>();
            map.put("date", System.currentTimeMillis());
            List<Person> personList = new ArrayList<>();
            Person person = new Person();
            person.setIndex(1);
            person.setName("张三");
            person.setAge(26);
            person.setSex("男");
            personList.add(person);
            map.put("maplist", personList);
            // 3、封装数据到Excel
            Workbook workbook = ExcelExportUtil.exportExcel(params, map);
            // 4、导出Excel
            workbook.write(response.getOutputStream());
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("Report export failed");
        }    


    }

}

4、Excel模板。

注意:

  1. 使用fe循环时,{{fe: 集合名称 第一个参数在第一个单元格;最后一个元素}}在最后一个单元格;中间元素获取不需要使用{{}}。
  2. 如果集合中存放的元素是对象,那么可以这样:t.元素.属性
  3. 单元格中使用了{{n:obj}}后,obj必须是数值,,否则会报错,因此可以与 fn:(obj;###) 结合使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值