我需要使用Spring boot创建一个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文件?
答案 0 :(得分:2)
如果您是新手,可以使用apache poi库处理此问题,您可以在这里找到关于此的很好的教程: https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/