如何从二进制数据获取XLSM(Excel工作表)文件?

时间:2019-07-08 07:21:27

标签: java spring spring-boot spring-mvc xlsm

我在资源文件夹(src / main / resources)中有一个XLSM文件(Excel工作表文件)。 我正在使用InputStream获取文件,并在RestAPI中给出响应。但是我无法从响应中获取文件。该文件已损坏。我在下面的代码中做错什么了。

@GetMapping("/downloadTemplate")
public ResponseEntity<?> downloadTemplate() throws IOException {
    String fn = "filename" ;

    try {
        InputStream inputStream = getClass().getClassLoader().getResourceAsStream(fn);

        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE)
                .header(HttpHeaders.CONTENT_TYPE, "application/xlsx")
                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fn)
                .body(IOUtils.toByteArray(inputStream));
    } catch (Exception e) {
        log.error("An error occurred while trying to downloadTemplate: {}", e);
        throw new ApiException(ApiErrorCode.DEFAULT_410, "Error while downloading");
    }
}

我认为内容类型(HttpHeaders.CONTENT_TYPE,“ application / xlsx”)有问题

注意:(XLSX)格式应该可以使用。

0 个答案:

没有答案