这是我用来读取一个非常大的 Excel 文件 (xlsx) 的代码,该文件有 23.5MB,有 700,000 多行。
String dir = rootPath + File.separator + "tmpFiles" + File.separator
+ FILE_NAME;
File fisNew = new File(dir);
Workbook w = StreamingReader.builder()
.rowCacheSize(100)
.open(fisNew);
Sheet worksheet = null;
worksheet = w.getSheetAt(0);
worksheet.getRow(0).getPhysicalNumberOfCells();
我在这一行收到 UnsupportedOperationException
空指针错误:
worksheet.getRow(0).getPhysicalNumberOfCells();
当我打印此行时,我也没有得到实际的字符串值: SpecialtyUtil.removeWhiteSpaces(excelheader.getCell(0))
。我应该获取列的名称,但我得到了一些 StreamingSheet
字符串。不太确定我需要在这里更改什么才能处理 xlsx 文件。
编辑:知道如何使用 StreamingReader 写入 Excel 文件吗?我知道这是一个不受支持的操作,但是有解决方法吗?
最佳答案
如果您查看 github 链接中的以下源代码,StreamingSheet 不支持 getPhysicalNumberOfCells() 方法。我在下面提供了代码片段。
/**
* Not supported
*/
@Override
public int getPhysicalNumberOfRows() {
throw new UnsupportedOperationException();
}
关于java - StreamingReader 与 Excel xlsx Java 配合使用时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56463474/