EasyPOI->模版形式导出Excel(多Sheet)

来源:互联网 发布:交趾郡 知乎 编辑:程序博客网 时间:2024/06/06 04:02

在使用EasyPOI进行模版导出时,通常导出得都是单Sheet得Excel,代码可参考我的文章Easypoi导出excel

有时候因为有其他需求,需要导出多Sheet时,可以参考如下代码:

public Workbook exportSheets(){        // 查询数据,此处省略        List list = new ArrayList<>();        int count1 = 0 ;        EasyPOIModel easyPOIModel11 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("张三","男",20)) ;        EasyPOIModel easyPOIModel12 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("李四","男",17)) ;        EasyPOIModel easyPOIModel13 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("淑芬","女",34)) ;        EasyPOIModel easyPOIModel14 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("仲达","男",55)) ;        list.add(easyPOIModel11) ;        easyPOIModel11 = null ;        list.add(easyPOIModel12) ;        easyPOIModel12 = null ;        list.add(easyPOIModel13) ;        easyPOIModel13 = null ;        list.add(easyPOIModel14) ;        easyPOIModel14 = null ;        List list1 = new ArrayList<>();        int count2 = 0 ;        EasyPOIModel easyPOIModel21 = new EasyPOIModel(String.valueOf(count2++),"软件",new User("德林","男",22)) ;        EasyPOIModel easyPOIModel22 = new EasyPOIModel(String.valueOf(count2++),"软件",new User("智勇","男",28)) ;        EasyPOIModel easyPOIModel23 = new EasyPOIModel(String.valueOf(count2++),"软件",new User("廉贞","女",17)) ;        list1.add(easyPOIModel21) ;        easyPOIModel21 = null;        list1.add(easyPOIModel22) ;        easyPOIModel22 = null;        list1.add(easyPOIModel23) ;        easyPOIModel23 = null;        // 设置导出配置        // 获取导出excel指定模版        TemplateExportParams params = new TemplateExportParams("d:/项目测试文件夹/easypoiExample.xlsx");        Map> mapMap = new HashMap<>() ;        // 创建参数对象(用来设定excel得sheet得内容等信息)        ExportParams params1 = new ExportParams() ;        // 设置sheet得名称        params1.setSheetName("表格1"); ;        ExportParams params2 = new ExportParams() ;        params2.setSheetName("表格2") ;        // 创建sheet1使用得map        Map dataMap1 = new HashMap<>();        // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName        dataMap1.put("title",params1) ;        // 模版导出对应得实体类型        dataMap1.put("entity",EasyPOIModel.class) ;        // sheet中要填充得数据        dataMap1.put("data",list) ;        // 创建sheet2使用得map        Map dataMap2 = new HashMap<>();        dataMap2.put("title",params2) ;        dataMap2.put("entity",EasyPOIModel.class) ;        dataMap2.put("data",list1) ;        // 将sheet1和sheet2使用得map进行包装        List> sheetsList = new ArrayList<>() ;        sheetsList.add(dataMap1);        sheetsList.add(dataMap2);        // 执行方法        return ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF) ;    }

表格1得内容为:



表格2得内容为:



需要注意得是,在填充不同sheet中使用得data数据列表得时候,需要使用不同得list对象进行填充,如图框选部分所示:


如果填充不同sheet得data数据列表使用相同得list对象进行填充的话,会出现第一次填充得sheet有数据,后续其他使用相同list对象进行data填充得sheet没有数据展示。

代码如下:


表格1的内容与之前相同,但表格2中却是空的:


所以在使用时需要多加注意。

其他相关使用请参考原文章:https://gitee.com/jeecg/easypoi



如您有其他问题,希望可以通过留言得形式及时交流,有书写错误和可优化的地方也希望及时提出,感谢。

原创粉丝点击