ほぼ 100,000 レコードのデータがあり、Java コードを使用してデータを.xlsx
ファイルに書き込もうとしています。XSSFWorkbook
データベースからすべてのデータを取得できますArrayList
。を繰り返すことで、セルごとにファイルArryList
にデータを書き込んでいます。.xlsx
8000 行に達すると、Java コードはOut of Memory Heap Space
エラーをスローします。
SXSSFWorkbook
に比べたら軽いとどこかで読んだXSSFWorkbook
ので使ってみSXSSFWorkbook
ました。しかし、それでも私は同じ問題に直面しています。
ワークブックまたは Java コードで不足しているものはありますか??
最初は、60,000 レコードのデータがあるとき、.xls
ファイルを使用していました。.xls
同じ Java コードで、.xmlファイルを生成できますHSSFWorkbook
。
私のデータは将来大幅に増加するため、Javaヒープスペースを増やすことはまったく選択肢ではありません。
どんな助けでも大歓迎です。
小さなコード、データを Excel に書き込む方法。
int rowNum = sheet.getLastRowNum();
Row lastRow = null ;
Cell cell = null;
ReportingHelperVo reportingHelperVo = null;
for (ReportingVo reportingVo : reportingVos) {
rowNum++;
lastRow = sheet.createRow(rowNum);
reportingHelperVo = reportingVo.reportingHelperVo;
cell = lastRow.createCell(0);
cell.setCellValue(reportingHelperVo.getLocation());
cell.setCellStyle(style);
cell = lastRow.createCell(1);
cell.setCellValue(reportingHelperVo.getCity());
cell.setCellStyle(style);
cell = lastRow.createCell(2);
cell.setCellValue(reportingHelperVo.getCountry());
cell.setCellStyle(style);
}