欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java导出Excel(多sheet导出)EasyPoi

程序员文章站 2022-07-13 12:59:37
...

一对多导出、图片文件等导出详见我上篇文章https://blog.csdn.net/weixin_40760239/article/details/107175835

多sheet导出

	@RequestMapping("/export")
    public void export(HttpServletResponse response) {
        //你要放置的多sheet数据 ???
        List<List<TotalReportEntity>> list= null;
        List<Map<String, Object>> sheetsList = new ArrayList<>();
        for(int i=0;i<list.size();i++){
            ExportParams params = new ExportParams();
            params.setTitle("各区县指标统计表");
            params.setSheetName("sheet名称"+i);
            Map<String, Object> sheet = new HashMap<>();
            sheet.put("title", params);
            sheet.put("entity", TotalReportEntity.class);
            //每个sheet的数据
            sheet.put("data", list.get(i));
            sheetsList.add(sheet);
        }
        Workbook workbook =  ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF);
        try {
            response.setHeader("Content-Disposition", "attachment;filename=" + new String("各区县指标统计表.xls".getBytes(), "ISO8859-1"));
            response.setHeader("Pargam", "no-cache");
            response.setHeader("Cache-Control", "no-cache");
            ServletOutputStream outStream = null;
            try {
                outStream = response.getOutputStream();
                workbook.write(outStream);
            } finally {
                outStream.flush();
                outStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

实体类

@Data
@TableName("t_total_report")
public class TotalReportEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    
	@TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * 区县
     */
    @Excel(name = "单位名称", width = 30)
    private String district;
   
    /**
     * 抓拍数量
     */
    @Excel(name = "抓拍数量(张)", width = 30)
    private String captureNum;
    。。。。
}