java 如何导出excel
使用 Apache POI 库导出 Excel
Apache POI 是 Java 操作 Microsoft Office 文件的主流库,支持 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(String filePath) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建表头
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("姓名");
headerRow.createCell(1).setCellValue("年龄");
// 添加数据
Row dataRow = sheet.createRow(1);
dataRow.createCell(0).setCellValue("张三");
dataRow.createCell(1).setCellValue(25);
// 写入文件
try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
workbook.write(outputStream);
}
workbook.close();
}
}
使用 EasyExcel 库导出 Excel
EasyExcel 是阿里巴巴开源的 Excel 操作库,性能优异且 API 简洁:
import com.alibaba.excel.EasyExcel;
import java.util.Arrays;
import java.util.List;
public class EasyExcelExporter {
public static class UserData {
private String name;
private int age;
// getters and setters
}
public static void exportToExcel(String filePath) {
List<UserData> dataList = Arrays.asList(
new UserData("张三", 25),
new UserData("李四", 30)
);
EasyExcel.write(filePath, UserData.class)
.sheet("用户数据")
.doWrite(dataList);
}
}
设置单元格样式
通过 POI 可以自定义单元格样式:

CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setBold(true);
font.setColor(IndexedColors.RED.getIndex());
style.setFont(font);
Cell cell = row.createCell(0);
cell.setCellValue("重要数据");
cell.setCellStyle(style);
导出大数据量时的优化
处理大量数据时需注意内存管理:
// 使用 SXSSFWorkbook 进行流式写入
Workbook workbook = new SXSSFWorkbook(100); // 保留100行在内存中
Sheet sheet = workbook.createSheet();
for (int i = 0; i < 100000; i++) {
Row row = sheet.createRow(i);
row.createCell(0).setCellValue("数据" + i);
}
导出复杂 Excel 文件
合并单元格和创建多 sheet 示例:

// 合并单元格
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3));
// 创建多个sheet
Sheet sheet2 = workbook.createSheet("报表");
// 添加数据到sheet2...
常见问题解决
文件扩展名问题:XSSFWorkbook 生成 .xlsx 格式,HSSFWorkbook 生成 .xls 格式。
中文乱码问题:确保字符串使用 UTF-8 编码。
内存溢出问题:大数据量使用 SXSSFWorkbook 替代 XSSFWorkbook。






