Мне нужно создать файл Excel (.xlsx), используя загрузку Spring, и отправить его в ответ на вызов POST, выполненный Angular Front End, а затем обработать ответ на стороне клиента, сразу же загрузив файл.
Как мне этого добиться?
Или лучше отправить JSON и использовать что-то вроде XLSX на угловой стороне для генерации файла excel?
Редактировать 1:
Итак, я могу создать файл Excel и отправить его в виде байтового массива в ответ примерно так:
@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?