vue 请求后台导出excel
时间: 2023-07-16 07:15:30 浏览: 56
要在 Vue 中请求后台导出 Excel,可以使用以下步骤:
1. 在 Vue 组件中定义一个方法,该方法将向后端发送请求并下载 Excel 文件。例如:
```javascript
export default {
methods: {
exportExcel() {
axios({
url: '/api/export',
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 的逻辑,并将文件以流的形式返回给前端。
```java
@RequestMapping(value = "/api/export", method = RequestMethod.GET)
public void exportExcel(HttpServletResponse response) throws IOException {
// 生成 Excel 文件
Workbook workbook = new XSSFWorkbook();
// 导出逻辑
// 将文件以流的形式返回给前端
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=export.xlsx");
workbook.write(response.getOutputStream());
response.getOutputStream().flush();
}
```
3. 在 Vue 组件中调用该方法即可进行导出 Excel。
```html
<template>
<button @click="exportExcel">导出 Excel</button>
</template>
<script>
import axios from 'axios';
export default {
methods: {
exportExcel() {
// 发送请求并进行下载
}
}
}
</script>
```