springboot用easyexcel返回一个文件,前端用vue接收并下载
时间: 2025-06-22 20:40:31 浏览: 7
Spring Boot 使用 EasyExcel 进行 Excel 导出时,通常会将生成的 Excel 内容作为响应体返回给客户端。前端 Vue 可以通过 AJAX 请求获取这个文件内容,并提供下载功能。这里是一个基本流程:
1. **后端 SpringBoot**:
首先,在 Spring Boot 控制器里,使用 EasyExcel 实现导出功能:
```java
@GetMapping("/export")
public ResponseEntity<byte[]> exportExcel(@RequestParam("filename") String filename) {
InputStream inputStream = ...; // 从数据库或其他数据源获取数据并转换成流
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + filename);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return ResponseEntity.ok().headers(headers).body(inputStream);
}
```
这里,`HttpHeaders` 设置了 `Content-Disposition` 以便浏览器识别这是一个需要下载的文件,`contentType` 则指定为二进制数据。
2. **前端 Vue**:
使用 Axios 或其他 HTTP 库发起请求,并处理下载:
```javascript
methods: {
downloadExcel() {
this.$http.get('/export?filename=yourFileName.xlsx').then((response) => {
let blob = new Blob([response.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
let url = window.URL.createObjectURL(blob);
let a = document.createElement('a');
a.href = url;
a.download = 'yourFileName.xlsx';
a.click();
window.URL.revokeObjectURL(url); // 下载完成后释放 URL
}, (err) => {
console.error(err);
});
}
}
```
这段代码创建了一个新的Blob对象,将服务端返回的流数据包装起来,然后模拟点击链接的方式触发下载。
阅读全文
相关推荐


















