Ошибка чтения файла Excel - PullRequest
       6

Ошибка чтения файла Excel

1 голос
/ 21 декабря 2011

Я использую HSSF в своем веб-приложении для чтения файла Excel, загруженного пользователем.
Приложение основано на Struts, и входной поток из объекта struts.upload.FormFile передается в конструктор POIFSFileSystem.
Я получаю следующую ошибку при попытке проанализировать конкретный файл Excel:

java.lang.reflect.InvocationTargetException: 
java.lang.ArrayIndexOutOfBoundsException: 11 
        at 
org.apache.poi.util.LittleEndian.getNumber(LittleEndian.java(Inlined 
Compiled Code)) 
        at 
org.apache.poi.util.LittleEndian.getShort(LittleEndian.java(Compiled 
Code)) 
        at 
org.apache.poi.hssf.record.MulRKRecord.fillFields(MulRKRecord.java:153) 
        at 
org.apache.poi.hssf.record.Record.fillFields(Record.java:90) 
        at 
org.apache.poi.hssf.record.Record.<init>(Record.java:55) 
        at 
org.apache.poi.hssf.record.MulRKRecord.<init>(MulRKRecord.java:65) 

Однако автономный тестовый класс, использующий HSSF, анализирует тот же файл без каких-либо проблем. Я использую POI версии 2.5.

Я не знаю, с чего начать отладку :-(

Кто-нибудь сталкивался с подобными проблемами? Пожалуйста, позволь мне знать.

1 Ответ

3 голосов
/ 22 декабря 2011

Вы знаете, что POI 2.5 датируется мартом 2004 года, не так ли? Это старше 7 лет!

Я бы настоятельно рекомендовал вам перейти на более новую версию, такую ​​как POI 3.8 beta 5 - уже 7 лет исправлений ошибок, которые вы упускаете ....! Вооружившись версией POI этого десятилетия (и в идеале этого года), очень велика вероятность того, что ваша проблема исчезнет, ​​и вы сможете прочитать свой файл без ошибок.

...