POI 根据模版导出,多sheet数据

定义模版

以下列举所有表达式:

表达式 描述/示例
三目运算 {{test ? obj:obj2}}test如果某一个字段,则该字段一定是布尔类型,如果一个表达式,如arg == 1则一定要带有空格
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& 空格
]] 换行符 多行遍历导出

第一页

POI 根据模版导出,多sheet数据_第1张图片

第二页

POI 根据模版导出,多sheet数据_第2张图片

JAVA代码

开启配置

 		TemplateExportParams params = new TemplateExportParams("F:\\java\\static\\meter\\测试.xlsx");
        // 核心配置,默认false,所以需要手动设置
        params.setScanAllsheet(true);

示例代码

 public static void main(String[] args) {
        TemplateExportParams params = new TemplateExportParams("F:\\java\\static\\meter\\测试.xlsx");
        // 核心配置,默认false,所以需要手动设置
        params.setScanAllsheet(true);
        System.out.println(params.getDataSheetNum());
        HashMap<String, Object> data = new HashMap<>();

        HashMap<String, String> list1 = new HashMap<>();
        list1.put("name","李四");
        list1.put("error","李四异常信息");

        HashMap<String, String> list2 = new HashMap<>();
        list2.put("name","张三");
        list2.put("error","张三异常信息");

        data.put("list", Arrays.asList(list1));
        data.put("list2",Arrays.asList(list2));

        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream(new File("F:\\java\\static\\meter\\data.xlsx"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        Workbook workbook = ExcelExportUtil.exportExcel(params, data);
        try {
            workbook.write(fileOutputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

效果

第一页

POI 根据模版导出,多sheet数据_第3张图片

第二页

POI 根据模版导出,多sheet数据_第4张图片

你可能感兴趣的:(java)