poi导出大量数据(15万条没有问题)

这篇博客介绍了如何利用Apache POI 3.8库来处理大量数据(如15万条记录)的Excel导出,避免内存溢出问题。通过设置SXSSFWorkbook,限制内存中保持的行数,实现高效写入到Excel文件。内容包括pom文件配置,创建工作簿、工作表、标题行,并遍历数据列表填充单元格,最后将工作簿写入到ServletOutputStream。
摘要由CSDN通过智能技术生成
1pom文件
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>3.8</version>
</dependency>
2
POIApache POI)是一个用于Microsoft Office文件格式(如Excel、Word和PowerPoint)操作的Java库。当你需要从Java程序中生成大量数据导出到Excel时,POI提供了强大的功能。以下是如何使用POI进行大数据导出的基本步骤: 1. **添加依赖**:首先,你需要在项目中引入Apache POI的HSSF(用于处理旧版本的Excel .xls文件)或XSSFWorkbook(处理新版本的.xlsx文件)。 ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>最新版本号</version> </dependency> ``` 2. **创建工作簿和sheet**:初始化一个`HSSFWorkbook`(对于.xls)或`XSSFWorkbook`(对于.xlsx),然后创建一个sheet。 ```java Workbook workbook = new XSSFWorkbook(); // 或 HSSFWorkbook Sheet sheet = workbook.createSheet("Sheet1"); ``` 3. **创建行和单元格**:循环遍历数据集,为每行创建一个新的`Row`对象,并填充单元格。 ```java for (int i = 0; i < data.size(); i++) { Row row = sheet.createRow(i); for (int j = 0; j < data.get(i).size(); j++) { Cell cell = row.createCell(j); cell.setCellValue(data.get(i).get(j)); } } ``` 4. **保存文件**:设置文件路径和名称,然后将工作簿写入磁盘。 ```java try (OutputStream outputStream = new FileOutputStream("output.xlsx")) { workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } // 或者,如果使用HSSF,可以这样: // try (FileOutputStream outputStream = new FileOutputStream("output.xls")) { // workbook.write(outputStream); // } ``` 5. **关闭资源**:记得在finally块中关闭工作簿和输出流,释放内存。 ```java finally { if (workbook != null) { try { workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值