无法在java中读取使用SXSSFWorkbook编写的文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在java中读取使用SXSSFWorkbook编写的文件相关的知识,希望对你有一定的参考价值。
我想读写大型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();
我遇到了大麻烦,有人可以帮我解决问题吗?
答案
我根据POI documentation使用了另一个构造函数
SXSSFWorkbook(workbook, rowAccessWindowSize, compressTmpFiles, useSharedStringsTable)
像这样:
SXSSFWorkbook workbook = new SXSSFWorkbook(null, 1000, true, true);
您可以在哪里启用共享字符串表
以上是关于无法在java中读取使用SXSSFWorkbook编写的文件的主要内容,如果未能解决你的问题,请参考以下文章
《JAVA》编程中怎么用SXSSFWorkbook对已存在的excel操作进行写数据操作
JAVA编程中用Apache POI 怎么用SXSSFWorkbook对已存在的excel(.xlsx)操作进行写数据操作
java excel poi 中的SXSSFWorkbook wb = new SXSSFWorkbook(workbook, 1000);是啥意思?