ajax 后端下载 easyexcel
时间: 2023-09-30 21:10:56 浏览: 107
easyExcel千万级别数据下载
5星 · 资源好评率100%
使用 Ajax 请求后端下载 easyexcel 可以通过以下步骤实现:
1. 前端使用 Ajax 请求后端接口,将需要导出的数据传递给后端。
2. 后端接收到请求后,使用 easyexcel 将数据写入 Excel 文件。
3. 将生成的 Excel 文件返回给前端进行下载。
下面是一个示例代码:
前端代码:
```javascript
$.ajax({
url: '/export',
type: 'POST',
data: { data: JSON.stringify(data) },
xhrFields:{
responseType: 'blob'
},
success: function(res) {
// 下载文件
var blob = new Blob([res], {type: 'application/vnd.ms-excel'})
var downloadUrl = URL.createObjectURL(blob)
var a = document.createElement("a")
a.href = downloadUrl
a.download = 'export.xlsx'
document.body.appendChild(a)
a.click()
URL.revokeObjectURL(downloadUrl)
}
})
```
后端代码(使用 Spring Boot 作为示例):
```java
@PostMapping("/export")
public void export(@RequestParam("data") String data, HttpServletResponse response) {
try {
// 将数据写入 Excel 文件
OutputStream out = response.getOutputStream();
EasyExcel.write(out, DemoData.class).sheet("Sheet1").doWrite(dataList);
// 设置响应头,告诉浏览器下载文件
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=export.xlsx");
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
}
```
需要注意的是,由于是后端下载文件,需要在响应头中设置 Content-Disposition 为 attachment,告诉浏览器下载文件,而不是直接打开。同时,需要将响应类型设置为 application/vnd.ms-excel,告诉浏览器这是 Excel 文件。
阅读全文