java - StreamingReader 与 Excel xlsx Java 配合使用时遇到问题

标签 java excel apache-poi xlsx xssf

这是我用来读取一个非常大的 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();
  }

github 链接如下。 https://github.com/monitorjbl/excel-streaming-reader/blob/master/src/main/java/com/monitorjbl/xlsx/impl/StreamingSheet.java#L97

关于java - StreamingReader 与 Excel xlsx Java 配合使用时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56463474/

相关文章:

java - 扫描仪对象一直等待输入

java - 是否可以从 Apache POI 中的 FuncVarPtg 获取操作数?

java - 如何使用 iText 获取获取单元格值

异常 : (The process can not access the file because this file is used by another process)

java - java中junit测试中的断言错误

Java-Tile map 图像闪烁-我该怎么做才能阻止这种情况?

javascript - 在函数中使用/添加正则表达式(?)将 HTML 表导出到 Excel?

excel - 获取Excel中的平均排名

asp.net - 有没有办法强制 MS Edge 在自身内部打开 Excel 文件而不是下载它?

java - Android - 使用 onclick 时的计时