ajax 使用easyexcel模板导出excel
时间: 2023-08-24 07:04:56 浏览: 143
可以使用 EasyExcel 结合 Ajax 实现模板导出 Excel 的功能,具体步骤如下:
1. 在前端页面中使用 Ajax 向后端发送请求,请求获取 Excel 数据;
2. 后端根据请求参数生成 Excel 数据,并利用 EasyExcel 将数据写入 Excel 模板;
3. 后端将生成的 Excel 文件流返回给前端;
4. 前端利用 Blob 对象创建文件流,并使用 FileSaver.js 将文件保存至本地。
以下是一个简单的示例代码:
前端代码:
```javascript
function exportExcel() {
$.ajax({
url: '/excel/export',
type: 'POST',
dataType: 'json',
success: function(res) {
var blob = new Blob([res], { type: 'application/vnd.ms-excel' });
saveAs(blob, 'example.xlsx');
},
});
}
```
后端代码:
```java
@PostMapping("/excel/export")
public void exportExcel(HttpServletResponse response) throws IOException {
// 获取 Excel 数据并填充至模板中
List<ExcelData> dataList = getDataList();
InputStream inputStream = getClass().getResourceAsStream("/templates/example.xlsx");
OutputStream outputStream = response.getOutputStream();
EasyExcel.write(outputStream).withTemplate(inputStream).sheet().doFill(dataList);
// 设置响应头
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=example.xlsx");
response.flushBuffer();
}
```
其中,`getDataList()` 方法用于获取 Excel 数据,`example.xlsx` 是 Excel 模板文件。需要注意的是,EasyExcel 需要在后端项目中引入依赖,同时在前端页面中引入 FileSaver.js。
阅读全文