在POST请求响应中返回Excel文件并使用Angular 5在客户端下载它

问题描述 投票:-1回答:1

我需要使用Spring启动创建一个excel文件(.xlsx)并发送它以响应Angular Front End完成的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文件?

angular spring-boot excel-2010
1个回答
2
投票

你可以使用apache poi库来处理这个问题如果你是新手,你可以在这里找到一个很好的教程:https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/

© www.soinside.com 2019 - 2024. All rights reserved.