java 导出excel 后台如何处理 前端如何像是网页下载那样获取excel表
时间: 2023-12-06 13:44:49 浏览: 134
React获取Java后台文件流并下载Excel文件流程解析
在后台使用 Java 导出 Excel 文件时,可以使用 Apache POI 库来创建和写入 Excel 文件。具体步骤如下:
1. 创建工作簿,并创建工作表对象
```java
Workbook workbook = new HSSFWorkbook(); // 创建工作簿对象,支持xls格式
Sheet sheet = workbook.createSheet("Sheet1"); // 创建工作表对象
```
2. 编写数据写入逻辑,将数据写入到工作表中
```java
Row row = sheet.createRow(0); // 创建第一行对象
// 写入第一行数据
Cell cell1 = row.createCell(0);
cell1.setCellValue("姓名");
Cell cell2 = row.createCell(1);
cell2.setCellValue("年龄");
Row row2 = sheet.createRow(1); // 创建第二行对象
// 写入第二行数据
Cell cell3 = row2.createCell(0);
cell3.setCellValue("张三");
Cell cell4 = row2.createCell(1);
cell4.setCellValue(25);
```
3. 将写入的数据输出到文件中
```java
OutputStream out = response.getOutputStream(); // 获取响应输出流
response.reset();
response.setHeader("Content-disposition", "attachment; filename=example.xls"); // 设置文件名
response.setContentType("application/msexcel"); // 设置文件类型
workbook.write(out); // 将工作簿写入输出流
out.flush(); // 刷新缓冲区
out.close(); // 关闭输出流
```
在前端页面中,可以使用 `XMLHttpRequest` 或者 `fetch` API 发起请求,获取 Excel 文件。获取到文件后,可以通过 Blob 对象将 Excel 文件转换为 URL,然后通过 a 标签下载。示例代码如下:
```javascript
// 使用 fetch API 发起请求
fetch('/export/excel').then(function(response) {
return response.blob();
}).then(function(blob) {
// 将文件转换为 URL
var url = window.URL.createObjectURL(blob);
// 创建 a 标签,设置下载链接和文件名,模拟下载
var link = document.createElement('a');
link.href = url;
link.download = 'example.xls';
link.click();
});
```
阅读全文