springboot导出excel文件
在Spring Boot中导出Excel文件,可以使用Apache POI库。以下是一个简单的例子,展示了如何创建一个Excel文件并导出。
首先,添加Apache POI依赖到你的pom.xml
文件中:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
然后,创建一个控制器来处理文件导出的请求:
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-excel")
public ResponseEntity<byte[]> exportExcel() throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("ExampleSheet");
// 创建标题行
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=example.xlsx");
// 返回响应实体
return ResponseEntity.ok()
.headers(headers)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(outputStream.toByteArray());
}
}
这段代码创建了一个简单的Excel文件,包含一个标题行和一些数据行。然后,它被导出为一个名为example.xlsx
的文件,并作为HTTP响应发送给客户端。
访问/export-excel
端点时,浏览器将提示用户下载这个Excel文件。
评论已关闭