首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JXLS的org/apache/poi/openxml4j/exceptions/InvalidFormatException

使用JXLS的org/apache/poi/openxml4j/exceptions/InvalidFormatException
EN

Stack Overflow用户
提问于 2017-03-27 14:57:09
回答 2查看 4.4K关注 0票数 0

我正在使用JXLS Java库生成excel报表。我正在尝试运行示例开始教程(对象集合输出演示)。正如本教程所建议的,我正在使用maven在我的项目构建配置文件中指定所需的库。下面是使用的java代码

代码语言:javascript
复制
List<Employee> employees = generateSampleEmployeeData();
    try(InputStream is = ObjectCollectionDemo.class.getResourceAsStream("object_collection_template1.xls")) {
        try(OutputStream os = new FileOutputStream("target/" + fileName)) {
            Context context = new Context();
            context.putVar("employees", employees);
            JxlsHelper.getInstance().processTemplate(is, os, context);
        }
    }

当我在eclipse中运行程序时,我会得到以下异常:

代码语言:javascript
复制
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/openxml4j/exceptions/InvalidFormatException
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.privateGetMethodRecursive(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at org.jxls.util.TransformerFactory.createTransformer(TransformerFactory.java:34)
    at org.jxls.util.JxlsHelper.createTransformer(JxlsHelper.java:217)
    at org.jxls.util.JxlsHelper.processTemplate(JxlsHelper.java:104)
    at com.ucas.ObjectCollectionDemo.main(ObjectCollectionDemo.java:42)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions.InvalidFormatException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 9 more

下面是maven依赖项的快照。

Java版本: 1.8

环境: Windows 7

IDE: Eclipse

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-27 18:48:20

看起来,Apache处理所需的一些XML依赖项存在问题。

我可以在依赖项屏幕截图中看到它们,但是由于某些原因,它们在运行程序时并不有效。在依赖项之间可能存在一些冲突。

只添加以下两个依赖项,尝试创建一个最小的jxls项目,并查看它是否有效。

代码语言:javascript
复制
    <dependency>
        <groupId>org.jxls</groupId>
        <artifactId>jxls</artifactId>
        <version>2.4.0</version>
    </dependency>
    <dependency>
        <groupId>org.jxls</groupId>
        <artifactId>jxls-poi</artifactId>
        <version>1.0.12</version>
    </dependency>

然后,您可以一个一个地添加您自己的依赖项,并查看它在何时中断。

票数 0
EN

Stack Overflow用户

发布于 2017-03-27 15:05:01

在你的问题中没有看到太多的代码,所以我将在这里拍摄空白。看起来,您的版本与使用不同版本的object_collection_template1.xls创建的文件版本不匹配,而JXLS与之兼容,至少在编写时是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43049801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档