如何使用Spring Boot导出数据到Excel表格
在Spring Boot中,你可以使用Apache POI库来创建和导出Excel文件。以下是一个简单的例子,展示了如何导出数据到Excel文件:
- 添加Apache POI依赖到你的
pom.xml
文件中:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
- 创建一个控制器来处理Excel文件的导出请求:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@RestController
public class ExcelExportController {
@GetMapping("/export")
public ResponseEntity<byte[]> exportToExcel() throws IOException {
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Data");
// 创建标题行
Row titleRow = sheet.createRow(0);
Cell titleCell = titleRow.createCell(0);
titleCell.setCellValue("示例标题");
// 填充数据
for (int i = 0; i < 10; i++) {
Row row = sheet.createRow(i + 1);
Cell cell = row.createCell(0);
cell.setCellValue("数据" + i);
}
// 写入Excel文件
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
workbook.close();
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "attachment; filename=data.xlsx");
// 返回响应实体
return ResponseEntity.ok()
.headers(headers)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(outputStream.toByteArray());
}
}
当你访问/export
路径时,这个控制器会创建一个包含示例数据的Excel文件,并将其作为附件返回给客户端。
请确保你的Spring Boot应用程序已经包含了Apache POI依赖,并且你的控制器位于Spring Boot应用程序的上下文中。这样,当你访问相应的端点时,你就可以导出Excel文件了。
评论已关闭