1、response方式返回excel文件流

@GetMapping("/exportExcel")
    public void exportExcel(@RequestParam(value = "menu") String menu,
                            @RequestParam(value = "dwflglId") int dwflglId,
                            @RequestParam(value = "qjCode") String qjCode,
                            HttpServletResponse response) throws IOException {
      //内容集合
        List<ZjlrysIndexView> jthz = getJthz(dwflglId, qjCode);
        //表头集合
        List<ZjlrysTableHead> header = getHeaderOfHz(dwflglId, qjCode);
        response.setHeader("Content-Disposition", "attachment; filename=Zjlryshz.xlsx");
        // 响应类型,编码
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        String bigTitle = "资金流入预算表";
        EasyExcel.write(response.getOutputStream()).head(getExcelHeader(header, bigTitle)).registerWriteHandler(new Custemhandler()).sheet("资金流入预算导出模板").doWrite(getExportData(jthz));
    }

2、通过在服务器中生成excel临时文件,返回下载链接给前端下载

            // 获取当前时间
            String updTm = DateUtil.getAllTime();
            //filePath为服务器存放临时文件的路径,本地开发环境的时候先可以用本地电脑的路径,比如c:users/,这里加上时间是因为不想被覆盖,也可以加uuid之类的
            FileOutputStream fileOutputStream = new FileOutputStream(filePath + "xx导出模板" + updTm + ".xlsx");

            EasyExcel.write(fileOutputStream).head(getDownLoadExcelHead())
                    .registerWriteHandler(new CustomSheetWriteHandler(map)).registerWriteHandler(new Custemhandler())
                    .sheet("数据字典导出模板").doWrite(downLoadExcelData);
            //url_prefix为服务器的域名之类的下载路径
            String url = url_prefix + "xx导出模板" + updTm + ".xlsx";
            

            /*
             * try {
             * 
             * // 若不进行编码在IE下会乱码
             * 
             * url = URLEncoder.encode(url, "UTF-8");
             * 
             * } catch (UnsupportedEncodingException e) {
             * 
             * e.printStackTrace();
             * 
             * }
             */