java通过ResponseEntity下载excel文件模板
时间: 2024-02-06 16:09:45 浏览: 147
java实现文件下载,并弹出保存对话框(Excel)
4星 · 用户满意度95%
下面是一个示例代码,用于通过ResponseEntity下载Excel文件模板:
```java
@GetMapping("/downloadExcelTemplate")
public ResponseEntity<ByteArrayResource> downloadExcelTemplate() throws IOException {
// 从 classpath 中读取 Excel 模板
InputStream inputStream = getClass().getResourceAsStream("/templates/excel_template.xlsx");
byte[] data = IOUtils.toByteArray(inputStream);
// 构建 ByteArrayResource 对象并设置响应头
ByteArrayResource resource = new ByteArrayResource(data);
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=excel_template.xlsx");
// 返回 ResponseEntity 对象
return ResponseEntity.ok()
.headers(headers)
.contentLength(data.length)
.contentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
.body(resource);
}
```
在上面的示例中,我们首先使用 `getClass().getResourceAsStream()` 方法从 classpath 中读取 Excel 模板文件,然后使用 Apache Commons IO 库的 `IOUtils.toByteArray()` 方法将其转换为字节数组。接着,我们构建了一个 `ByteArrayResource` 对象,并设置了响应头,包括文件名和文件类型。最后,我们使用 `ResponseEntity` 对象返回文件内容以及响应头信息。
注意,上面的代码中使用了 Apache Commons IO 库,需要在 pom.xml 文件中添加以下依赖:
```xml
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
<!-- 其他依赖... -->
</dependencies>
```
另外,需要注意的是,上面的代码示例是基于 Spring Boot 框架编写的,如果你使用的是其他框架,可能需要进行适当的修改。
阅读全文