Java 如何使用POI事件API读取多页excel文件?

Java 如何使用POI事件API读取多页excel文件?,java,excel,apache-poi,Java,Excel,Apache Poi,因为使用POI用户API无法读取大的excel文件,所以我不得不使用POI事件API。但是,我发现它无法正确读取以下网站的多页excel文件: 使用下面的代码,我可以获得工作表名称,但如何在不迭代其记录的情况下获得excel文件的工作表编号 RecordFactoryInputStream recordStream = new RecordFactoryInputStream(inputStream,false); Record rec = recordStream.nextRecord();

因为使用POI用户API无法读取大的excel文件,所以我不得不使用POI事件API。但是,我发现它无法正确读取以下网站的多页excel文件:

使用下面的代码,我可以获得工作表名称,但如何在不迭代其记录的情况下获得excel文件的工作表编号

RecordFactoryInputStream recordStream = new RecordFactoryInputStream(inputStream,false); 
Record rec = recordStream.nextRecord(); 
while(rec!=null) {
        if(BoundSheetRecord.sid==rec.getSid()) {
            BoundSheetRecord bsr = (BoundSheetRecord) rec;
            System.out.println("New sheet named: " + bsr.getSheetname());//it can get sheet name
        }
        rec = recordStream.nextRecord(); 
}

请帮帮我。

它们不仅整齐吗?床单整齐,但我不知道如何取。所以我必须在RecordInputStream中迭代记录。我不理解你的问题。你从流中读出它们,跟踪你在哪个流中,现在你有了表名和ID。什么不起作用?跟踪我在哪一个上,没关系。我想逐行读取Excel文件中某个工作表,而不使用记录类,就像使用工作簿一样。我已经阅读了POI的源代码,工作簿(包括HSSFWorkbook或XSSForkbook)迭代记录以重建工作表。可以使用HSSFWorkbook随机访问该文件,也可以使用事件处理忽略任何记录,直到达到所需的位为止。选择简单或低内存-你不能两者都有。。。