读取excel文件时出错

问题描述:

我在我的web应用程序中使用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一个独立的测试类解析相同的文件,没有任何问题:
试图解析特定的Excel文件时,我收到以下错误。我正在使用POI版本2.5。

我不知道从哪里开始调试:-(

有没有人遇到过类似的问题?请让我知道 。

+1

是的,我也遇到过类似类型的问题。 这是因为我试图从具有空值的单元格读取数字数据。 从你的错误,它似乎代码试图读取一个单元格,不存在或具有空值。在分析单元格值之前,检查单元格是否为空。 – Mohsin 2011-12-21 09:16:08

+0

http://www.onlinexamples.com/searchactionfull.action?keywords=excel&idlabels=-1 – 2011-12-21 15:57:46

你知道,POI 2.5日期从2004年3月,不你已经7岁多了!

我强烈建议你升级到更新的版本,比如POI 3.8 beta 5 - 已经有7年的错误修复了,你错过了....!Armed从这十年的POI版本(最好是从今年开始),你的问题将会消失的可能性非常大,而且你可以阅读您的文件没有错误。