EasyExcel导出下载文件响应流为空

本人用EasyExcel导出文件响应流为空是什么原因?我用postman测试有响应,浏览器没有

img

img

try {
            // 附件名称和格式
//            response.addHeader("import", "500");
            response.reset();
            response.setContentType("application/octet-stream");
            response.setCharacterEncoding("UTF-8");
            String fileName = URLEncoder.encode("注册安全工程师管理导入模板", "UTF-8");
            response.addHeader("Content-Disposition","attachment;filename=" + fileName + ".xlsx");
            // 转为二进制流进行吐出
            ServletOutputStream os = response.getOutputStream();
//            xk.write(os);
            EasyExcel.write(os,SatetyEngineeManagementImport.SEImportErrorWriteData.class).autoCloseStream(false).needHead(false).inMemory(true)
                    .withTemplate(new File(ConchConfig.getTemplatePath()+"/" + "注册安全工程师管理导入模板.xlsx")).sheet("导入模板").doWrite(errorWriteDataList);

            os.flush();
            /*os.close();*/
        } catch (Exception e) {
            log.error("Excel error", e);
        }

我怀疑是不是你没关闭的原因。

用的哪个浏览器?换个浏览器再测试下?

从postman上可用看出来你的接口响应时间是3.18s,还是比较慢。而在浏览器中没有响应,有可能是前段或中间nginx设置了超时时间,导致前段收不到数据。比如,你nginx设置的超时断开1s(也就是1s没有响应完,前端接口也不用等了),而你的接口要3s才返回数据,但是nginx已经断开了,前端是收不到数据的。 你这个问题可排查一下反向代理服务器的配置。

easyExcel导出文件为空解决
如有帮助,望采纳
https://blog.csdn.net/fly_west/article/details/120943765

对比下两边的请求参数是否一致,我看你是本地的服务器,你试试本地debug,看看请求有没有到你的后端。

自动关闭流怎么是false?

可以参考:https://download.csdn.net/download/gongjin28_csdn/85324396,这里面有EasyExcel示例,有问题可以私信,知无不答,答无不尽