`

java.lang.Exception: java.lang.IllegalArgumentException: firstMovedIndex, lastMo

阅读更多
       这两天系统在导出Excel(2003的版本,代码中的引用的API也是针对03版的Excle)数据时,老是报java.lang.Exception: java.lang.IllegalArgumentException: firstMovedIndex, lastMovedIndex out of order 错误,导致无法正常导出Excel。网上查了一下,大部分都是说POI的版本问题,需要用POI 3.9的jar包。 经过昨晚的熬夜核查,发现修改一下方法即可以正常导出。


源代码:
HSSFSheet ws = wb.getSheetAt(i);
ws.shiftRows(j+dataStartRow, ws.getPhysicalNumberOfRows(), 1, true, false);


修改shiftRows方法中的参数:
HSSFSheet ws = wb.getSheetAt(i);
ws.shiftRows(j+dataStartRow, ws.getLastRowNum(), 1, true, false);


即将ws.getPhysicalNumberOfRows()替换为 ws.getLastRowNum()。




控制台原抛出的异常如下:

DEBUG - accept:image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/QVOD, application/QVOD, application/x-ms-application, application/x-ms-xbap, applicacookie:JSESSIONID=6127F149506B190A49849E7A1B19DF17; COOKIE_TOKEN_KEY=%2Bvn7EYVidpGMPvEx8AoxjyDKP3RevgA4Q7AWFOsfPr1Wjfr%2BL3kwKwFdjygoU5%2BNunJ3zszCHahJ0kskpKb%2B9g%3D%3DPath.2)
reportGroupBeanVo.reportGroupId:??????406
DEBUG - java.lang.Exception: java.lang.IllegalArgumentException: firstMovedIndex, lastMovedIndex out of order
        at com.eshore.common.web.interceptor.ExceptionInterceptor.intercept(ExceptionInterceptor.java:95)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
        at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.eshore.ssoclient.web.ModcompsFilter.doFilter(ModcompsFilter.java:101)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.eshore.ssoclient.web.SSOFilter.doFilter(SSOFilter.java:295)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.eshore.ssoclient.web.OASSOFilter.doFilter(OASSOFilter.java:184)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: firstMovedIndex, lastMovedIndex out of order
        at org.apache.poi.ss.formula.FormulaShifter.<init>(FormulaShifter.java:56)
        at org.apache.poi.ss.formula.FormulaShifter.createForRowShift(FormulaShifter.java:81)
        at org.apache.poi.hssf.usermodel.HSSFSheet.shiftRows(HSSFSheet.java:1411)
        at org.apache.poi.hssf.usermodel.HSSFSheet.shiftRows(HSSFSheet.java:1262)
        at com.eshore.ppm.action.imusic.ReportGroupAction.reportExport(ReportGroupAction.java:258)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
        at org.apache.struts2.interceptor.de
DEBUG - Executing prepared SQL update










                                      @xuyanxilu.pudongqu.shanghai 2014-07-02 12:55
分享到:
评论

相关推荐

    IDEA 中使用 ECJ 编译出现 java.lang.IllegalArgumentException的错误问题

    "IDEA 中使用 ECJ 编译出现 java.lang.IllegalArgumentException 的错误问题解决方案" IDEA 是一个功能强大且功能丰富的集成开发环境,支持多种编程语言,包括 Java、Python、Ruby 等。ECJ(Eclipse Compiler for ...

    如何解决Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X

    在整合Spring、Struts2和Mybatis的过程中,可能会遇到各种问题,其中之一就是`java.lang.IllegalArgumentException: Result Maps collection already contains value for X`。这个问题通常出现在Mybatis配置文件中,...

    在Java中异常分析

    - **异常路径**:`java.lang.Object -&gt; java.lang.Throwable -&gt; java.lang.Exception -&gt; java.lang.RuntimeException -&gt; java.lang.IllegalArgumentException` - **解释**:当传递给方法的参数无效时抛出。 - **示例...

    Java上传文件错误java.lang.NoSuchMethodException的解决办法

    在Java编程中,`java.lang.NoSuchMethodException`异常通常表明在运行时尝试调用一个不存在的方法。这个错误在上传文件时出现,可能是由于在控制器方法的签名与前端发送请求时的参数不匹配导致的。在描述中提到的...

    Java java.lang.ExceptionInInitializerError 错误如何解决

    `java.lang.ExceptionInInitializerError` 是Java编程语言中一个特殊的运行时异常,它通常表示在类的静态初始化过程中发生了异常。这个错误不是因为类的构造函数,而是由于静态变量初始化或者静态初始化块(也称为...

    用javah导出类的头文件常见的错误及正确的使用方法.docx

    Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: HelloJNIActivity.class ``` 这是因为`javah`命令期望的是类的全名,而不是包含扩展名的文件名。解决方法是只提供类的...

    JAVA常见的错误

    java.lang.ArithmeticException 是一种常见的错误,发生在数学运算异常时。例如,在程序中出现了除以零这样的运算时,就会出现该错误。解决方法是检查代码,确保数学运算是正确的。 4. java.lang....

    JAVA常见异常解析,面试用

    5. **java.lang.IllegalArgumentException**: 方法接收到无效参数时抛出此异常。检查所有传入方法的参数,确保它们符合方法的要求,如数值范围、类型匹配等。 6. **java.lang.IllegalAccessException**: 当试图...

    常见的java异常.pdf

    3. **java.lang.ArithmeticException**: 发生在执行非法数学运算时,例如除以零。在进行数学计算时,应检查可能的除零条件或其他可能导致错误的条件。 4. **java.lang.ArrayIndexOutOfBoundsException**: 这个...

    java异常详解

    当执行算术运算时遇到非法操作,如除以零,将会抛出`java.lang.ArithmeticException`。这类异常通常发生在涉及数值计算的代码段中,需要开发者仔细检查并处理。 #### 4. `java.lang.ArrayIndexOutOfBoundsException...

    java常见异常.pdf

    5. **java.lang.IllegalArgumentException**: 如果方法接收到无效的参数,例如参数超出预期范围或格式错误,将抛出此异常。在调用方法时,应确保传递的参数符合方法的要求。 6. **java.lang.IllegalAccessException...

    java编程常见问题

    9. **java.lang.ArithmeticException**: 当执行如整数除以零这样的非法算术运算时,会抛出此异常。应该添加适当的错误处理来避免这种情况。 10. **java.lang.ArrayIndexOutOfBoundsException**: 当尝试访问数组的...

    Java的异常类

    5. **`java.lang.IllegalArgumentException`** - **解释**:“方法的参数错误”,表示传递给方法的参数无效或不适当。 - **示例**:如果调用`Graphics.setColor(int red, int green, int blue)`方法时,颜色值超过...

    JAVA常见异常解析

    3. **java.lang.ArithmeticException**: 当执行非法的数学运算时,如除以零,Java会抛出此异常。在编写涉及数学运算的代码时,应添加适当的检查以防止除以零或其他可能导致ArithmeticException的操作。 4. **java...

    Java中常用异常列表[收集].pdf

    3. **`java.lang.ArithmeticException`**:数学运算异常。当执行非法的数学运算,如除以零时,会抛出此异常。在进行数学运算时,应避免除以零或进行其他可能导致错误的操作。 4. **`java.lang....

    常见JAVA异常总结

    `java.lang.ArithmeticException` 是一个算术运算异常,通常由以下情况引发: - 整数除以零。 - 浮点数除以零。 - 其他违反数学规则的运算。 - **解决方法**: - 对于整数除法,应先检查除数是否为零。 - 使用...

Global site tag (gtag.js) - Google Analytics