VUE实现下载后端返回Excel文件流
时间: 2024-01-10 08:03:14 浏览: 151
vue中后端做Excel导出功能返回数据流前端的处理操作
要实现下载后端返回Excel文件流,可以使用以下步骤:
1. 在前端中发起下载请求,例如使用axios库:
```
axios({
url: 'http://example.com/download',
method: 'GET',
responseType: 'blob', // 表明返回服务器返回的数据类型
}).then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data]))
const link = document.createElement('a')
link.href = url
link.setAttribute('download', 'file.xlsx') // 下载的文件名
document.body.appendChild(link)
link.click()
})
```
2. 在后端中实现文件下载,将Excel文件流返回给前端:
```
@RequestMapping(value = "/download", method = RequestMethod.GET)
public void download(HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=file.xlsx");
InputStream inputStream = new FileInputStream(new File("path/to/file.xlsx"));
IOUtils.copy(inputStream, response.getOutputStream());
response.flushBuffer();
}
```
这里使用了`IOUtils.copy()`方法将Excel文件流写入到响应的输出流中,使得前端可以获取到Excel文件流并进行下载。
阅读全文