最近在搞大数据量的Excel文件的导出功能。利用数据库游标查询加上poi的sxssf技术实现数据库数据的平稳转换为流返回给前端。前端通过fetch将流一点点存到内存中,利用a标签下载下来。但是在开发过程中遇到了一个特殊的异常处理问题。困扰了很久,特记录一下。如果有遇到相同问题的同学可参考一下。
不罗嗦直接代码
1.controller层
@PostMapping("/user/getPage")
ResponseEntity<StreamingResponseBody> getPage(@RequestBody User user, HttpServletResponse response) throws FileNotFoundException {
StreamingResponseBody streamingResponseBody = new StreamingResponseBody() {
@Override
public void writeTo(OutputStream outputStream) throws IOException {
userService.queryStream(user,outputStream);
outputStream.close();
}
};
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=FileName.xlsx")
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(streamingResponseBody);
}

最低0.47元/天 解锁文章
1107

被折叠的 条评论
为什么被折叠?



