1. Apache POI
- 描述:这是最常见的方式,通过 Apache POI 可以操作
.xls
和.xlsx
格式的 Excel 文件。POI 提供了完整的 API 支持,适合生成动态内容丰富的 Excel 文件。 - 优点:支持多种 Excel 格式,功能强大,广泛应用。
- 缺点:对于大量数据的导出,内存消耗较大,可能需要使用
SXSSF
来优化内存使用。
1. 添加依赖
在 Maven 的 pom.xml 中添加 Apache POI 相关依赖(确保版本与项目兼容):
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
2. 编写导出 Excel 的 Controller
下面是一个示例 Controller,通过 HTTP 请求导出 Excel 文件:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RestController
public class ExcelExportController {
@GetMapping("/exportExcel")
public void exportExcel(HttpServletResponse response) throws IOException {
// 设置响应内容类型和头信息,告知浏览器下载文件
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment;filename=export.xlsx");
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("数据");
// 创建表头行
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("序号");
header.createCell(1).setCellValue("姓名");
header.createCell(2