前端调用后端接口,使用easyExcel下载excel文件,文件还要有100个sheet
时间: 2024-02-01 08:15:12 浏览: 93
前端读取Excel文件
前端调用后端接口,使用easyExcel下载excel文件,可以将文件分成多个sheet。具体实现可参考以下步骤:
1. 后端接口返回的数据需要是符合 EasyExcel 的格式的数据,即 List<List<String>> 类型的数据。
2. 在后端使用 EasyExcel 进行文件的生成和写入数据。例如:
```java
List<List<String>> data = getData(); // 获取数据
String fileName = "example.xlsx";
ExcelWriter excelWriter = EasyExcel.write(fileName).build();
WriteSheet writeSheet = EasyExcel.writerSheet(0, "Sheet1").build();
excelWriter.write(data, writeSheet);
excelWriter.finish();
```
3. 如果需要生成多个 sheet,可以使用以下代码:
```java
List<List<String>> data1 = getData1(); // 获取 Sheet1 的数据
List<List<String>> data2 = getData2(); // 获取 Sheet2 的数据
String fileName = "example.xlsx";
ExcelWriter excelWriter = EasyExcel.write(fileName).build();
WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "Sheet1").build();
WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "Sheet2").build();
excelWriter.write(data1, writeSheet1).write(data2, writeSheet2);
excelWriter.finish();
```
4. 在前端使用 axios 发送请求,接收到后端返回的文件流数据,使用 FileSaver.js 进行文件的下载。例如:
```javascript
axios({
url: '/api/download',
method: 'GET',
responseType: 'blob' // 设置响应类型为二进制流
}).then(res => {
const fileName = 'example.xlsx';
const blob = new Blob([res.data], {type: 'application/vnd.ms-excel;charset=utf-8'});
FileSaver.saveAs(blob, fileName);
});
```
以上是一个简单的实现方式,具体实现需要根据实际情况进行调整。
阅读全文