日期:2014-05-20  浏览次数:21391 次

poi将数据写入excel07时报NullPointerException
具体错误为
java.lang.NullPointerException
at org.apache.xmlbeans.impl.store.Xobj.array_setter(Xobj.java:2401)
at org.apache.xmlbeans.impl.values.XmlComplexContentImpl.arraySetterHelper(XmlComplexContentImpl.java:1055)
at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorksheetImpl.setColsArray(Unknown Source)
at org.apache.poi.xssf.usermodel.XSSFSheet.write(XSSFSheet.java:2338)
at org.apache.poi.xssf.usermodel.XSSFSheet.commit(XSSFSheet.java:2328)
Truncated. see log file for complete stacktrace

发生异常的代码时这一句 workBook.write(os);注:workBook和os都不是为空,需要的话我发代码

求大神指教

------解决方案--------------------
https://issues.apache.org/bugzilla/show_bug.cgi?id=48493
有人遇到了和你一样的问题,也许对你有用。
这个人是使用weblogic应用服务器,weblogic中有一个jar包和xmlbeans出现包重名了,所以出现了错误调用。解决办法是将xmlbeans放在了classpath的最前面。
------解决方案--------------------
楼主发的代码好乱。
不过,如果是这句 workBook.write(os); 报空指针 

然,楼主说workBook,os都是非空的。那这空指针是说谁是空指针呢?
------解决方案--------------------
探讨
引用:
你用的是weblogic么?是的话,原因可能是有一个包在weblogic自带的jar包里和xmlbeans的jar包里都有,类是通过包名唯一定位的,本来因该是定位到xmlbeans里的类,不小心定位到weblogic的jar包里去了。
https://issues.apache.org/bugzilla/show_bug.cgi?id=48493 你看看这个网页,里面……

------解决方案--------------------
at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorksheetImpl.setColsArray(Unknown Source)

应该是setColsArray这块吧, 再看下