xlsxファイルに65000行以上の結果セットを書き込む必要があります。だから私はApache POI 3.7を使用しようとしています。しかし、OutOfMemoryError:Javaヒープスペースのエラーが発生します。どのように私は問題を解決するように思わないJVMメモリを増やす以外にこの問題を解決するのですか?助けてください。Apache POI 3.7 OutOfMemoryError:xlsxファイルに大量の行を書き込むときのJavaヒープスペース
簡単なサンプルコード:
public static void main(String[] args) throws IOException {
Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
for (int i=0;i<65000;i++){
Row row = sheet.createRow((int) i);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
// Or do it on one line.
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(
createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
}
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("test1.xls");
fileOut.flush();
wb.write(fileOut);
fileOut.close();
}
この問題は、CSVファイルに書き込んでExcel 2007にインポートすることで回避できますか? –