easyExcel 按照模板设置到处excel内容

1.引入

 
        
            com.alibaba
            easyexcel
            3.3.1
        
        
            com.github.whvcse
            easy-captcha
            1.6.2
        

2.设置模板  打印模板.xlsx

easyExcel 按照模板设置到处excel内容_第1张图片3.相关代码

    @ApiOperation(value = "获取excle,根据excle模板")
    @GetMapping("getExcel")
    public void getExcel(HttpServletResponse response) throws IOException {
    	response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" +  DateUtil.currentTimeSeconds() + ".xlsx");
    	//指定excel模板文件
//        String templateFileName = "C:\\Users\\13628\\Desktop\\打印模板.xlsx";
        ResourceLoader resourceLoader = new DefaultResourceLoader();
        InputStream templateFileInputStream = resourceLoader.getClassLoader().getResourceAsStream("打印模板.xlsx");
        //指定填充后保存excel的文件
//        String fileName = "C:\\Users\\13628\\Desktop\\demo.xlsx";
        //数据
        Map map = new HashMap();
        map.put("payTime", "2023-08-09");
        List> list = new ArrayList>();
        for (int i = 0; i < 5; i++) {
        	Map map1 = new HashMap();
        	map1.put("gname", "测试"+i);
        	map1.put("price", 2.38+i);
        	map1.put("relPrice", 3.38+i);
        	list.add(map1);
        }
        map.put("records", list);
        //导出
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(templateFileInputStream).build()){
            WriteSheet writeSheet = EasyExcel.writerSheet().build();
            // 这里注意 入参用了forceNewRow 代表在写入list的时候不管list下面有没有空行 都会创建一行,然后下面的数据往后移动。默认 是false,会直接使用下一行,如果没有则创建。
            // forceNewRow 如果设置了true,有个缺点 就是他会把所有的数据都放到内存了,所以慎用
            // 简单的说 如果你的模板有list,且list不是最后一行,下面还有数据需要填充 就必须设置 
            //forceNewRow=true 但是这个就会把所有数据放到内存 会很耗内存
            // 如果数据量大 list不是最后一行 参照下一个
            FillConfig fillConfig =                 
            FillConfig.builder().forceNewRow(Boolean.TRUE).build();
            excelWriter.fill(map, writeSheet);
            excelWriter.fill(new FillWrapper("records", list), fillConfig, writeSheet);
        }

    }

4.apifox调试,返回文件流,点击下载即可下载文件

easyExcel 按照模板设置到处excel内容_第2张图片

下载后文件

easyExcel 按照模板设置到处excel内容_第3张图片

你可能感兴趣的:(excel,easyexcel,spring,spring,boot)