粘贴即用的Excel导出

新接触的项目有很多的Excel导出,试过好几个,这里给大家推荐一下,

utils类

    public static void downloadExcel(List<Map<String, Object>> list, HttpServletResponse response) throws IOException {
        String tempPath = System.getProperty("java.io.tmpdir") + IdUtil.fastSimpleUUID() + ".xlsx";
        File file = new File(tempPath);
        BigExcelWriter writer = ExcelUtil.getBigWriter(file);
        // 一次性写出内容,使用默认样式,强制输出标题
        writer.write(list, true);
        //response为HttpServletResponse对象
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
        if (null ==response.getHeader("Content-Disposition")){
            response.setHeader("Content-Disposition", "attachment;filename=file.xlsx");
        }
        ServletOutputStream out = response.getOutputStream();
        // 终止后删除临时文件
        file.deleteOnExit();
        writer.flush(out, true);
        //此处记得关闭输出Servlet流
        IoUtil.close(out);
    }

直接复制到类中调用
xxxxxEntity为需要导出的list。

List<Map<String, Object>> list = new ArrayList<>();
            try {
                for (xxxxxEntity list : school) {
                    Map<String, Object> map = new LinkedHashMap<>();
                    map.put("学校名称", null == listExport.getData273() ? "无" : listExport.getData273());
                    map.put("学校地址", null == listExport.getData285() ? "无" : listExport.getData285());
                    map.put("负责人", null == listExport.getData290() ? "无" : listExport.getData290());
                    map.put("创建时间", null == listExport.getBeginTime() ? "无" : listExport.getBeginTime());
                    map.put("人数", null == listExport.getData38() ? "无" : listExport.getData38());
                    list.add(map);
                }
                response.setHeader("Content-Disposition", "attachment;filename=" + new String(("学校详情数据").getBytes(), "iso-8859-1") + ".xlsx");
                FileUtil.downloadExcel(list, response);
                Result.ok("成功");
            } catch (Exception e) {
                e.printStackTrace();
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值