java中如何导出excel
导出Excel的常用方法
在Java中导出Excel可以通过多种库实现,以下是几种主流方法:

使用Apache POI库
Apache POI是处理Microsoft Office文档的Java API,支持Excel的读写操作。

// 创建工作簿
Workbook workbook = new XSSFWorkbook(); // .xlsx格式
// 或 HSSFWorkbook() 用于.xls格式
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 创建行和单元格
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("示例数据");
// 写入文件
try (FileOutputStream fos = new FileOutputStream("output.xlsx")) {
workbook.write(fos);
}
使用EasyExcel库
阿里巴巴开源的EasyExcel适合大数据量导出,内存占用低。
// 准备数据
List<DemoData> dataList = new ArrayList<>();
dataList.add(new DemoData("数据1", 1));
// 导出
String fileName = "output.xlsx";
EasyExcel.write(fileName, DemoData.class).sheet("Sheet1").doWrite(dataList);
使用JExcelAPI(JXL)
较老的库,适合简单场景。
WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls"));
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
Label label = new Label(0, 0, "测试数据");
sheet.addCell(label);
workbook.write();
workbook.close();
关键注意事项
- 大数据量导出时推荐使用EasyExcel或POI的流式API(SXSSFWorkbook)
- 文件路径需确保有写入权限
- 处理不同Excel版本时注意区分HSSF(.xls)和XSSF(.xlsx)
- 资源使用后需及时关闭(try-with-resources)
性能优化建议
- 批量处理数据避免频繁IO
- 使用模板方式减少样式处理开销
- 考虑分Sheet存储超大数据
- 设置合适的内存缓存大小






