用Hutool中的工具类实现导出多个sheet

一.实现代码如下:

  

复制代码
 ExcelWriter writer = null;
        //设置一个文件名称
        String thisTime = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date());
        String fileName = new String(("data" + thisTime).getBytes("utf-8"), "ISO8859-1");
        List<Map> maps = trainingMapper.allTrain(siteId);
        for (Map map : maps) {
            Boolean visibleRange = Boolean.valueOf(String.valueOf(map.get("visibleRange")));
            Long trainId = Long.valueOf(String.valueOf(map.get("id")));
            String trainName = String.valueOf(map.get("名称"));
            if (Objects.isNull(writer)) {
                writer = ExcelUtil.getBigWriter(fileName, trainName);
            } else {
                //设置单元名称
                writer.setSheet(trainName);
            }
            List<Map> learns = new ArrayList<>();
            //公开班
            if (visibleRange) {
                learns = commonMapper.getLatestOneGongLearns(trainId, null, null);
            } else {
                learns = commonMapper.getLatestOneZhuanLearns(trainId, null);
            }

            writer.getStyleSet().setAlign(HorizontalAlignment.LEFT, VerticalAlignment.CENTER);
            //将数据塞入
            writer.write(learns, true);
            writer.autoSizeColumnAll();

        }
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
        ServletOutputStream out = response.getOutputStream();
        writer.flush(out);
         // 关闭writer,释放内存
        writer.close();
        IoUtil.close(out);
复制代码

 

二.EXCEL 实现 下载的工具类代码如下:

  

复制代码
public class ResponseUtils {

    public static void downloadFile(HttpServletResponse response, Iterable<?> rows, String fileName) {
        try {
            String thisTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
            fileName = new String((fileName + "-" + thisTime).getBytes("utf-8"), "ISO8859-1");

            BigExcelWriter writer = ExcelUtil.getBigWriter(fileName);
            writer.getStyleSet().setAlign(HorizontalAlignment.LEFT, VerticalAlignment.CENTER);
            writer.write(rows, true);
            writer.autoSizeColumnAll();

            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
            ServletOutputStream out = response.getOutputStream();

            writer.flush(out, true);
            writer.close();
            IoUtil.close(out);
        } catch (Exception ee) {
            System.out.println(ee);
            System.out.println(ee.getMessage());
        }
    }
}
复制代码

 

posted @   Kamran超  阅读(2016)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示