在开发应用程序时,经常会遇到将数据导出到Excel表格的需求。Spring Boot提供了简单而有效的方法来实现这个功能。本文将介绍如何使用Spring Boot和Apache POI库将数据导出到Excel表格,并提供一个示例代码来演示该过程。
1. 准备工作
首先,确保你的Spring Boot项目已经正确设置并且已经添加了相关的依赖并在filePath创建对应的Excel表格。在本示例中,我们将使用Apache POI来处理Excel文件。你可以在项目的 pom.xml
文件中添加以下依赖:
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.4</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.4</version>
</dependency>
这两个依赖分别是 poi
和 poi-ooxml
,它们提供了对Excel文件的处理和支持。
2. 创建导出功能
下面是一个简单的Spring Boot控制器方法,用于将数据导出到Excel表格:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;@RestController
public class ExcelExportController {@PostMapping("/exportToExcel")public void exportToExcel(@RequestParam String filePath) throws IOException {// Mock 4 条 Car 数据List<Car> carList = new ArrayList<>();carList.add(new Car("Red", "Toyota", 25000.00));carList.add(new Car("Blue", "Honda", 30000.00));carList.add(new Car("Black", "Ford", 28000.00));carList.add(new Car("White", "BMW", 45000.00));// 创建 Excel 工作簿和工作表Workbook workbook = new XSSFWorkbook();Sheet sheet = workbook.createSheet("CarList");// 创建表头行Row headerRow = sheet.createRow(0);headerRow.createCell(0).setCellValue("Color");headerRow.createCell(1).setCellValue("Brand");headerRow.createCell(2).setCellValue("Price");// 写入数据行int rowNum = 1;for (Car car : carList) {Row row = sheet.createRow(rowNum++);row.createCell(0).setCellValue(car.getColor());row.createCell(1).setCellValue(car.getBrand());row.createCell(2).setCellValue(car.getPrice());}// 自动调整列宽for (int i = 0; i < 3; i++) {sheet.autoSizeColumn(i);}// 写入文件try (FileOutputStream fileOut = new FileOutputStream(filePath)) {workbook.write(fileOut);} catch (IOException e) {throw new RuntimeException(e);} finally {workbook.close(); // 关闭工作簿释放资源}}
}
效果图如下:
3. 使用方法
通过POST请求调用 /exportToExcel
接口,并传递一个文件路径作为参数,即可将数据导出到Excel表格中。
4. 总结
本文介绍了如何使用Spring Boot和Apache POI库将数据导出到Excel表格的方法。通过一个简单的示例,你可以了解到实现这一功能的基本步骤和方法。在实际项目中,你可以根据需求对代码进行扩展和定制,以满足更复杂的导出需求。
希望本文对你有所帮助,如果有任何疑问或建议,请随时留言。