中易网

用jxl读取excel文件,调用getsheet()时,遇到number类型的单元格时抛出异常

答案:4  悬赏:70  
解决时间 2021-11-09 02:50
  • 提问者网友:梧桐不渝
  • 2021-11-08 08:08
代码如下:
File tmpfile = file;
Workbook rwb = null;
InputStream is = null;
is = new FileInputStream(tmpfile);
rwb = Workbook.getWorkbook(is);
Sheet rs=null;
rs = rwb.getSheet(j);//此处抛出异常

抛出的异常为:
java.lang.IndexOutOfBoundsException: Index: 23, Size: 23
at java.util.ArrayList.RangeCheck(ArrayList.java:507)
at java.util.ArrayList.get(ArrayList.java:324)
at jxl.biff.FormattingRecords.getNumberFormat(FormattingRecords.java:247)
at jxl.read.biff.NumberRecord.(NumberRecord.java:73)
at jxl.read.biff.SheetReader.read(SheetReader.java:503)
at jxl.read.biff.SheetImpl.readSheet(SheetImpl.java:716)
at jxl.read.biff.WorkbookParser.getSheet(WorkbookParser.java:257)
at com.lium.test.readExcel.parseExcel(readExcel.java:62)
at com.lium.test.readExcel.main(readExcel.java:194)

经跟踪调试发现是getsheet()时遇到number类型的单元格就抛出异常了,有遇到过类似问题的吗,急!如能够解决将分值追加到200!

三楼,,只要把文件打开,,什么也不做,只要点击保存,再读取就没有问题了,所以复制到别的excel文件上肯定就没有异常了。现在主要的问题是如何不做其它操作直接就能读取。
最佳答案
  • 二级知识专家网友:寂寞的炫耀
  • 2021-11-08 08:31
j应该是工作表在工作薄中的索引吧.
调试时跟踪一下j的值,注意它有没有初值,及它的值有没有超出Excel的Sheet数.
全部回答
  • 1楼网友:邪性洒脱
  • 2021-11-08 11:43
重新打开
  • 2楼网友:萌萌哒小可爱
  • 2021-11-08 10:38
只是晏府的气氛, 却比汴京的秋日还沉凝, 带分萧瑟中的纷纷叶落。
  • 3楼网友:木子香沫兮
  • 2021-11-08 09:42
你代码里应该有这样的代码: String a = (String)list.get(23); 这里list长度应该是22(你可以get(0~22)的值),在去第23个值的时候超出了list 的长度。 相应的这里的rs = rwb.getSheet(j)取值时应该满足:j的值在0~22;23就list越界了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息