在 POST 请求响应中返回 Excel 文件并使用 Angular 在客户端下载它 5
Returning Excel file in POST request response and Downloading it on client side using Angular 5
我需要使用 Spring 引导创建一个 excel 文件 (.xlsx) 并发送它以响应 Angular 前端完成的 POST 调用然后通过立即下载文件来处理客户端的响应。
如何实现?
还是发送 JSON 并在 Angular 端使用 XLSX 之类的东西来生成 excel 文件更好?
编辑 1:
所以我能够创建一个 excel 文件并将其作为 byteArray 发送作为响应,如下所示:
@PostMapping("/excel")
@CrossOrigin("*")
public ResponseEntity<byte[]> fetchFile(@RequestBody Employee employee) throws IOException, InvalidFormatException {
ByteArrayOutputStream outputStream = excelService.getExcelSheet();
byte[] response = outputStream.toByteArray();
HttpHeaders headers = new HttpHeaders();
headers.setAccessControlExposeHeaders(Collections.singletonList("Content-Disposition"));
headers.set("Content-Disposition", "attachment; filename=employee.xlsx");
headers.setAccessControlExposeHeaders(Collections.singletonList("Content-Type"));
headers.set("Content-Type","application/vnd.ms-excel");
return new ResponseEntity<>(response, headers, HttpStatus.OK);
}
使用邮递员下载文件时,东西很棒。
但是我如何在 Angular 前面使用它并将文件下载为 .xlsx 文件?
如果您是新手,您可以使用 apache poi 库来处理这个问题,您可以在这里找到一个很好的教程:
https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/
我需要使用 Spring 引导创建一个 excel 文件 (.xlsx) 并发送它以响应 Angular 前端完成的 POST 调用然后通过立即下载文件来处理客户端的响应。
如何实现?
还是发送 JSON 并在 Angular 端使用 XLSX 之类的东西来生成 excel 文件更好?
编辑 1:
所以我能够创建一个 excel 文件并将其作为 byteArray 发送作为响应,如下所示:
@PostMapping("/excel")
@CrossOrigin("*")
public ResponseEntity<byte[]> fetchFile(@RequestBody Employee employee) throws IOException, InvalidFormatException {
ByteArrayOutputStream outputStream = excelService.getExcelSheet();
byte[] response = outputStream.toByteArray();
HttpHeaders headers = new HttpHeaders();
headers.setAccessControlExposeHeaders(Collections.singletonList("Content-Disposition"));
headers.set("Content-Disposition", "attachment; filename=employee.xlsx");
headers.setAccessControlExposeHeaders(Collections.singletonList("Content-Type"));
headers.set("Content-Type","application/vnd.ms-excel");
return new ResponseEntity<>(response, headers, HttpStatus.OK);
}
使用邮递员下载文件时,东西很棒。 但是我如何在 Angular 前面使用它并将文件下载为 .xlsx 文件?
如果您是新手,您可以使用 apache poi 库来处理这个问题,您可以在这里找到一个很好的教程: https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/