Возврат файла Excel в ответ на запрос POST и загрузка его на стороне клиента с помощью Angular 5 - PullRequest
0 голосов
/ 11 сентября 2018

Мне нужно создать файл 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?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете справиться с этим с помощью библиотеки Apache Poi. Если вы новичок в этом, вы можете найти хороший учебник по этому вопросу здесь: https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/

...