我有以下 Controller 来下载 excel 文件。该文件已下载,但当我打开它时,我得到“文件已损坏,无法打开。”。我在 Controller 中做错了什么?
@ApiOperation(value = "export ontology")
@RequestMapping(value = "/export/{ontologyId}", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> exportExcel(@PathVariable Long ontologyId) throws FileNotFoundException {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Description", "File Transfer");
headers.add("Content-Disposition", "attachment; filename=pfizer_polish_ontology.xlsx");
headers.add("Content-Transfer-Encoding", "binary");
headers.add("Connection", "Keep-Alive");
headers.setContentType(
MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
File file = new File("C:\\ttt\\pfizer_polish_ontology.xlsx");
InputStreamResource isr = new InputStreamResource(new FileInputStream(file));
return ResponseEntity.ok().contentLength(file.length()).headers(headers).body(isr);
}
我想添加一个重要的细节 我正在使用 REST API 的 Swagger 接口(interface)
使用 POSTMAN(保存并下载)我能够下载文件并且很好。所以似乎问题仅在使用 swagger 接口(interface)时出现
最佳答案
这是我用于 xlsx 文档的那个:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
关于java - spring下载excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46036255/