При попытке проанализировать файл MS Excel с помощью POI-HSSF v3.2 Я получаю IndexOutOfBoundsException. Электронная таблица, которую я пытаюсь прочитать, не пуста, она была создана с использованием MS Excel 2003, а BiffViewer, включенный в пакет POI, не имеет никакого смысла разбирать его.IndexOutOfBoundsException при попытке прочитать файл MS Excel с использованием Apache POI-HSSF
Мой код выглядит следующим образом:
package src;
import java.io.*;
import org.apache.poi.hssf.record.*;
import org.apache.poi.hssf.eventusermodel.*;
class Excel implements HSSFListener
{
public static void main (String[] args) throws Exception
{
FileInputStream stream = new FileInputStream("c:\\temp\\a.xls");
HSSFEventFactory f = new HSSFEventFactory();
HSSFRequest req = new HSSFRequest();
req.addListenerForAllRecords(new Excel());
f.processEvents(req,stream);
stream.close();
}
public void processRecord (Record r)
{
System.out.println(r);
}
}
А вот трассировки стека я получаю:
Исключение в потоке "главный" java.lang.IndexOutOfBoundsException в java.io. FileInputStream.readBytes (собственный метод) на java.io.FileInputStream.read (FileInputStream.java:199) на org.apache.poi.hssf.record.RecordInputStream.nextRecord (RecordInputStream.java:106) at org.apache .poi .hssf.eventusermodel.HSSFRecordStream.getNextRecord (HSSFRecordStream.java:128) на org.apache.poi.hssf.eventusermodel.HSSFRecordStream.nextRecord (HSSFRecordStream.java:93) в org.apache.poi.hssf.eventusermodel.HSSFEventFactory .genericProcessEvents (HSSFEventFactory.java:141) на org.apache.poi.hssf.eventusermodel.HSSFEventFactory.processEvents (HSSFEventFactory.java:98) на src.Excel.main (Excel.java:21)
Большое спасибо! Я знаю, я просто ленив и мог сам взглянуть на источник POI, но, надеюсь, кто-то здесь сможет быстро указать любую глупую вещь, которую я сделал в своем коде.