Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ApachePOI事件模型API从.xlsx文件中获取总行数_Java_Apache Poi_Saxparser - Fatal编程技术网

Java 如何使用ApachePOI事件模型API从.xlsx文件中获取总行数

Java 如何使用ApachePOI事件模型API从.xlsx文件中获取总行数,java,apache-poi,saxparser,Java,Apache Poi,Saxparser,我指的是阅读大型excel(.xlsx)文件。使用这种方法,我可以读取整个.xlsx文件,但在从文件中读取记录时,仍然无法获取总行数 根据要求,用户正在上载.xlsx文件,数据始终位于excel的第一列(A)。我从.xlsx文件中逐个读取记录并发送到队列。但我还想将每次发送数据时的记录总数发送到队列 我几乎花了3个小时来解决这个问题,但没有找到合适的代码 任何帮助都将不胜感激。POI示例中有第二个流式示例 这一个使用了一个不同的流接口,它公开了带有行号的startRow和endRow事件 另一种

我指的是阅读大型excel(.xlsx)文件。使用这种方法,我可以读取整个.xlsx文件,但在从文件中读取记录时,仍然无法获取总行数

根据要求,用户正在上载.xlsx文件,数据始终位于excel的第一列(A)。我从.xlsx文件中逐个读取记录并发送到队列。但我还想将每次发送数据时的记录总数发送到队列

我几乎花了3个小时来解决这个问题,但没有找到合适的代码


任何帮助都将不胜感激。

POI示例中有第二个流式示例

这一个使用了一个不同的流接口,它公开了带有行号的startRow和endRow事件


另一种方法是使用excel streaming reader-参见示例()-这可以修改为记录最后一行的“getRowNum()”值。

在解析文件时跟踪行号,并返回所看到的最大值?@Gagravarr我没有得到它。你能详细说明一下吗?看看你链接到的代码中的
startElement
方法,它显示了你如何获得单元格的引用,其中包括行号。只需跟踪该值的最大值即可parse@Gagravarr谢谢你的详细说明。我已经跟踪了不同用途的行号,但每次调用'endElement'方法时,我都需要总行号。根据要求,我希望将每个记录的总行数发送到队列。在endElement方法中,我编写了这个逻辑来发送队列。您必须分析文件两次,一次得到总数,然后第二次得到方法的值Hank。在这两种情况下,我将在读取最后一行时获得总行数。但在我的例子中,在从excel读取第一条记录时,我需要总行数。excel-streaming-reader(“上面的另一种方法”)的工作表实现中有一个getLastRowNum()