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
浙公网安备 33010602011771号