我想读写大型excel文件。因此,我使用SXSSFWorkbook编写excel文件和XSSF和SAX EVENT API来读取文件。
但是,当读取excel文件时,单元格内容为空,并且如果使用SXSSFWOrkbook写入excel文件。如果我打开已写入的Excel文件并再次保存,则会正确显示内容。
以下是我用来编写excel文件的代码。
SXSSFWorkbook wb = new SXSSFWorkbook();
wb.setCompressTempFiles(true);
SXSSFSheet sh = (SXSSFSheet) wb.createSheet();
// sh.setRandomAccessWindowSize(100);// keep 100 rows in memory,
// exceeding rows will be flushed to disk
for (int rownum = 0; rownum < 100; rownum++) {
Row row = sh.createRow(rownum);
for (int cellnum = 0; cellnum < 10; cellnum++) {
Cell cell = row.createCell(cellnum);
String address = new CellReference(cell).formatAsString();
cell.setCellValue(address);
}
}
FileOutputStream out = new FileOutputStream("D:\\tempsxssf.xlsx");
wb.write(out);
out.flush();
out.close();
wb.dispose();
我遇到了大麻烦,有人可以帮我解决问题吗?
答案 0 :(得分:1)
SXSSFWorkbook(workbook, rowAccessWindowSize, compressTmpFiles, useSharedStringsTable)
像这样:
SXSSFWorkbook workbook = new SXSSFWorkbook(null, 1000, true, true);
您可以在其中启用共享字符串表