easyExcel导出多个list列表的excel

使用easyExcel 的版本为2.2.6,在1个excel里面导出多个list

模板
在这里插入图片描述
导出后excel

在这里插入图片描述

@ApiOperation("test")
    @GetMapping("test")
    public void test(HttpServletResponse response) {
        try{

            //准备第一个list
            List<UserAddVo> list1 = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                UserAddVo userAddVo = new UserAddVo();
                userAddVo.setAccount( i + "账号");
                userAddVo.setMobile("1315267999" + i);
                list1.add(userAddVo);
            }

            //准备第二个list数据
            List<UserAddVo> list2 = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                UserAddVo userAddVo = new UserAddVo();
                userAddVo.setPositionName( i + "职位");
                userAddVo.setMobile("1315267999" + i);
                list2.add(userAddVo);
            }


            //读取模板输入流
            InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("static/template/1.xlsx");

            //设置文件名称
            String fileName = URLEncoder.encode("" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()), "UTF-8");
            //设置文件类型
            response.setContentType("application/vnd.ms-excel");
            //设置编码格式
            response.setCharacterEncoding("utf-8");
            // https://www.jb51.net/article/30565.htm Content-Disposition 使用说明
            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");

            //创建excel
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(resourceAsStream).build();
//           创建sheet
            WriteSheet writeSheet = EasyExcel.writerSheet().build();
            FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();

            // 如果有多个list 模板上必须有{前缀.} 这里的前缀就是 a,然后多个list必须用 FillWrapper包裹
            excelWriter.fill(new FillWrapper("a", list1), fillConfig, writeSheet);
            excelWriter.fill(new FillWrapper("b", list2), fillConfig, writeSheet);

            Map map = new HashMap<>();
            map.put("total",111);


            excelWriter.fill(map, writeSheet);

            // 别忘记关闭流
            excelWriter.finish();


        }catch (Exception e){
            e.printStackTrace();
        }
    }
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页