Java使用EasyPoi根据模板导出excel时出现问题解决

如题,今天下午使用easyPoi根据模板导出excel时发现导出的excel文件不对劲,始终是个白板如图:

一般出现这种情况有两种原因,第一种是本身导出模板有问题,第二种是导出过程中程序出现了异常报了错,但我遇到的问题都和这两个无关;

最后找同事帮看了一下发现是导出时HttpResponse输出流的Header设置有问题。

 

解决方案:

 

 1             TemplateExportParams params = new TemplateExportParams(absolutePath);
 2 
 3             Workbook workbook = ExcelExportUtil.exportExcel(params, paramMap);
 4 
 5             String encodeFileName = UriUtils.encode(fileName, StandardCharsets.UTF_8);
 6             String disposition = "attachment;" +
 7                     "filename*=utf-8''" + encodeFileName;
 8             response.setHeader("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION);
 9             response.setHeader(HttpHeaders.CONTENT_DISPOSITION, disposition);
10             workbook.write(response.getOutputStream());

 

其中UriUtils和HttpHeaders都是Spring框架内置的类不需要额外引入jar包

 

注意:fileName,一定要加后缀,excel加xxx.xlsx,word则加xxx.doc

 

posted @ 2022-04-26 17:39  云翊宸  阅读(1509)  评论(0)    收藏  举报