springboot 导出excel返回给前端下载
时间: 2023-09-06 14:03:52 浏览: 158
ajax原生方法实现导出excel
在Spring Boot中,可以使用Apache POI库来导出Excel文件并将其返回给前端进行下载。
首先,我们需要在pom.xml文件中添加Apache POI的依赖项:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
接下来,创建一个Excel导出的处理器方法。可以在Controller中创建一个方法,该方法使用`@RequestMapping`或`@GetMapping`注解来指定URL路径和HTTP请求方法。在该方法中,可以使用Apache POI来创建和填充Excel工作簿。例如,以下代码演示了如何在Excel中创建并填充一个简单的表格:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@RequestMapping("/export")
public ResponseEntity<Resource> exportExcel() throws IOException {
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 填充数据
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("姓名");
headerRow.createCell(1).setCellValue("年龄");
Row dataRow = sheet.createRow(1);
dataRow.createCell(0).setCellValue("张三");
dataRow.createCell(1).setCellValue(25);
// 将工作簿转换为字节数组
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
byte[] excelBytes = outputStream.toByteArray();
// 创建HTTP响应体,并设置文件下载的相关头信息
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", "data.xlsx");
// 返回带有Excel文件的响应实体
return new ResponseEntity<>(new ByteArrayResource(excelBytes), headers, HttpStatus.OK);
}
```
在上面的代码中,我们创建了一个简单的Excel表格,并将其转换为字节数组形式。然后,我们创建了一个包含Excel文件的响应实体,并设置了HTTP响应头以指定文件下载的相关信息,例如文件名和Content-Type。最后,我们将响应实体返回给前端进行下载。
以上是一个简单的示例,你可以根据实际需求来创建更复杂的Excel导出。
阅读全文