代码拉取完成,页面将自动刷新
生成的文件里面啥都没有竟然还是70多M的文件。可见样式真不少。
我的jvm设置的最大内存为2G, 我的文件是70000行*457列, 请问这个内存消耗,高不高。
用了SXssfWorkbook 用了easyExcel,用了eec,感觉eec的速度更快一点,但是这个内存消耗,好像不比另外两个少。
可以将测试代码贴出来看一下
这是我的工具类,截图地方为我的获取数据的方法(https://foruda.gitee.com/images/1713178972447991229/b31959d3_1599857.png "屏幕截图")
从代码上看并没有什么不妥之处,但为什么会有7w空行?
用错了(ListSheet,ListMapSheet),导致没有匹配到数据,不过,空单元格还能是excel文件有70多找,估计有样式在。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
你可以直接将流写入response而不是返回一个byte[],查看wiki
示例代码:
/**
* 直接将excell输出到流
*/
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
String fileName = java.net.URLEncoder.encode("新建文件.xlsx", "UTF-8");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"; filename*=utf-8''" + fileName);
// 查询数据
List<Student> students = studentService.list();
new Workbook().addSheet(new ListSheet<>(students)).writeTo(response.getOutputStream()); // <- 直接写到Response流
}
至于内存的问题你可以先做一下排除,比如先新建一个项目使用main方法做同样的事看一下内存消耗,另外IDEA设置的custome VM是idea运行内存,程序运行内存需要在Application设置或者打包后直接运行,不要依赖于IDEA(IDEA运行的时候会启动很多勾子和监听程序)
登录 后才可以发表评论