java如何导出excel
使用 Apache POI 导出 Excel
Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 文档,包括 Excel。以下是使用 Apache POI 导出 Excel 的基本步骤。
添加依赖到 Maven 项目:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
创建 Excel 工作簿并写入数据:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelExporter {
public static void exportToExcel() throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Name");
headerRow.createCell(1).setCellValue("Age");
Row dataRow = sheet.createRow(1);
dataRow.createCell(0).setCellValue("John Doe");
dataRow.createCell(1).setCellValue(30);
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
}
workbook.close();
}
}
使用 EasyExcel 导出 Excel
EasyExcel 是阿里巴巴开源的 Excel 操作工具,性能优异且易于使用。
添加 EasyExcel 依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.2</version>
</dependency>
定义数据模型并导出:
import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;
public class ExcelExporter {
public static class User {
private String name;
private int age;
// getters and setters
}
public static void exportToExcel() {
List<User> users = new ArrayList<>();
users.add(new User("John Doe", 30));
users.add(new User("Jane Smith", 25));
EasyExcel.write("output.xlsx", User.class).sheet("Sheet1").doWrite(users);
}
}
导出 Excel 的高级功能
设置单元格样式:
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setBold(true);
style.setFont(font);
headerRow.getCell(0).setCellStyle(style);
合并单元格:
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 1));
导出大数据量时使用流式处理:
// EasyExcel 自动支持流式写入
EasyExcel.write("large_data.xlsx", User.class)
.sheet("Sheet1")
.doWrite(dataList);
导出 Excel 的注意事项
文件路径需要确保有写入权限,否则会抛出异常。
对于大数据量导出,建议使用流式处理或分批次写入,避免内存溢出。
导出的文件格式可以是 .xls(HSSFWorkbook)或 .xlsx(XSSFWorkbook),后者支持更大的数据量。

在实际项目中,通常会将导出功能封装为服务,并提供下载接口供前端调用。






