导出的时候,一般是正常的,但试很多次后,就会出现错误:java.lang.ArrayIndexOutOfBoundsException: 164
at jxl.biff.IndexMapping.getNewIndex(IndexMapping.java:68)
at jxl.biff.FormattingRecords.rationalize(FormattingRecords.java:372)
at jxl.write.biff.WritableWorkbookImpl.rationalize(WritableWorkbookImpl.java:727)
at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:489)
重启TOMCAT后,也是正常没错误的。不知何解,怎么去查那里写错了???

解决方案 »

  1.   

    出错是从下面这句代码报出来的,
                // 写入文件
                workbook.write();奇怪的是,数据及其他环境都是一样的,就是不断地点击导出按钮,大部分都是正常没错误的,只有偶尔几次是报错,而且报错后重启系统,也正常了,实在不知道代码那里写得有问题。是不是对于单元格字体,每个都需要NEW一下的吗,我试过,好像都不能完全解决问题。
      

  2.   

    可能是异步线程导致的,比如使用了ArrayList类
      

  3.   

    问题还没有完全解决,我是用别的方法绕开的了。因为我是调用 jxl 包进行导出EXCEL文件的,但出错的是在 jxl 包里面的代码,所以找不到原因。想问问有没有人也遇到过这样的情况,谢了。
      

  4.   

    弄了好久也没有找到原因,算了,先结贴吧.打算用POI了.
      

  5.   

    出现错误时是因为在WritableCellFormat使用了static 的变量
      

  6.   

    我的情况和你很相似,大多时候是正常的,但有时候解析excel时会出现java.lang.ArrayIndexOutOfBoundsException
    java.lang.System.arraycopy(Native Method)
    jxl.biff.StringHelper.getString(StringHelper.java:114)
    jxl.read.biff.SupbookRecord.readExternal(SupbookRecord.java:141)
    jxl.read.biff.SupbookRecord.<init>(SupbookRecord.java:105)
    jxl.read.biff.WorkbookParser.parse(WorkbookParser.java:522)
    jxl.Workbook.getWorkbook(Workbook.java:246)
    jxl.Workbook.getWorkbook(Workbook.java:228)
    cn.qa.excel.ExcelTest2.doGet(ExcelTest2.java:38)
    cn.qa.excel.ExcelTest2.doPost(ExcelTest2.java:146)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)