我只是想从Java JXLS中证明一个演示代码:http://jxls.sourceforge.net/samples/object_collection.html 但在添加(没有MAVEN)必要的库后:
我收到以下错误跟踪:
ERROR [org.jxls.util.TransformerFactory] (http--0.0.0.0-8080-9) Method createTransformer of org.jxls.transform.poi.PoiTransformer class thrown an Exception: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_101]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_101]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_101]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_101]
at org.jxls.util.TransformerFactory.createTransformer(TransformerFactory.java:35) [jxls-2.3.0.jar:]
Caused by: java.lang.NullPointerException
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:198) [poi-ooxml-3.14-20160307.jar:3.14]
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:170) [poi-ooxml-3.14-20160307.jar:3.14]
at org.jxls.transform.poi.PoiTransformer.createTransformer(PoiTransformer.java:49) [jxls-poi-1.0.9.jar:]
at org.jxls.transform.poi.PoiTransformer.createTransformer(PoiTransformer.java:42) [jxls-poi-1.0.9.jar:]
ERROR [stderr] java.lang.IllegalStateException: Cannot load XLS transformer. Please make sure a Transformer implementation is in classpath
我已经尝试了所有可能性并且总是得到同样的错误。有什么想法吗?
答案 0 :(得分:1)
问题可能是项目中存在冲突的jar。
如果您在项目中以某种方式拥有两个版本的POI(例如3,14 - 3,06),则它无法实例化类或调用方法。检查那些冲突。
(如果您使用maven,请检查依赖关系层次结构以查看所有依赖关系并排除不同版本的poi,然后重试。)
答案 1 :(得分:1)
尝试了很多并解决了问题,但添加了以下用于解决此问题的依赖JAR列表
答案 2 :(得分:0)
要使用当前的Jxls-2.3.0版本运行此示例,您需要在类路径中使用以下库
您可以做的另一个选择是使用jxls依赖项设置一个简单的Maven项目,然后使用Maven Dependency Plugin的Copying project dependencies目标将所有依赖项下载并复制到一个单独的文件夹中。
在搜索转换器实现时,jxls-2.3.0及更早版本无法正确显示异常堆栈跟踪。 所以现在很难弄清楚你的类路径有什么问题。 这将在下一个版本中修复。