Java - EventUserModel - 为什么HSSFListener读取所有工作表?

时间:2016-05-15 05:10:12

标签: java excel apache-poi

我是使用eventusermodel上传xls文件的新手。 我有一些关于阅读表格的问题..为什么eventusermodel读取所有表格? 怎么改呢?我只想在第一张纸上阅读我的程序.. 这是我的示例代码:

( |$)

我必须更改哪一行才能使这个只读第一张?谢谢你的进步..

1 个答案:

答案 0 :(得分:0)

HSSF事件解析支持的最佳示例之一是EventBasedExcelExtractor shipped as part of Apache POI。如果您仔细阅读,那么您会在新工作表的开头看到BOFRecord类型TYPE_WORKSHEET触发

因此,您希望将代码更改为:

int seenSheets = 0;

....

if(record.getSid()==RowRecord.sid){
    newrowrec = (RowRecord) record;
    System.out.println("new ROW NUMBER : "+ newrowrec.getRowNumber());
    System.out.println("new LAST ROW NUMBER : "+ newrowrec.getLastCol());
}
switch (record.getSid())
{
    seenSheets++;
    if (seenSheets > 1) {
       throw new Exception("Sheet done");
....

并在外面捕获该异常以完成

您可能还想使用AbortableHSSFListener以更简洁的方式在您点击第二张时终止