当前位置: 首页 > 知识库问答 >
问题:

noClassDefFounderRor:workbookfactory.create(workbookfactory.java:266)[duplicate]

曾瀚昂
2023-03-14

我正试图从excel表中检索数据,下面是代码:

 public static void main(String[] args) throws  Exception  {
    File f = new File("C:\\Users\\Alex\\Documents\\Victoria.xlsx");
    Workbook wb =  WorkbookFactory.create(f);
    Sheet s = wb.getSheetAt(0);
    Row r =s.getRow(0);
    Cell c=r.getCell(0);
    s.getLastRowNum();
    int rowcount = s.getLastRowNum();
    System.out.println("rows are"+rowcount);
    System.out.println(c.getStringCellValue());
}

当我运行它时,这是我得到的错误消息:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by
## Heading ## org.apache.poi.openxml4j.util.ZipSecureFile$1 (file:/C:/Users /Alex/Downloads/selenium-java-3.6.0/poi-3.17/poi-ooxml-3.17.jar) to field java.io.FilterInputStream.in
WARNING: Please consider reporting this to the maintainers of org.apache.poi.openxml4j.util.ZipSecureFile$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:266) 
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:226) 
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:205)
at CreateSingle_ValueRet.main(CreateSingle_ValueRet.java:13)
Caused by: java.lang.ClassNotFoundException:
org.apache.commons.collections4.ListValuedMap
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) 
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more

我正在使用Eclipse Oxigen。

共有1个答案

胡沈义
2023-03-14

类路径中缺少commons-colletions4。添加它,异常就会消失。

 类似资料:
  • 问题内容: 我在jsp页面中看到以下错误- 我看到了一篇关于此的文章,并尝试了一些建议的方法。BalusC提供了很好的输入- JSTL1.2和Standard.jar不能一起使用。我做到了,它解决了一段时间的问题- 但它再次出现。我不确定是否还有jar碰撞。我已经将所有jar定义为Maven中的依赖项。以下是我指定的依赖项pom.xml- 问题答案: 您将需要在项目中导入JSP API,而Serv

  • 问题内容: This question already has answers here : How to nicely format floating numbers to String without unnecessary decimal 0? (26 answers) Closed 6 years ago. For example I need to become , or to beco

  • 问题内容: 我正在创建一个需要存储键值对的程序。该程序需要接受键形式的请求,并返回相应的值。 问题在于每个键有时有多个值,并且map类不允许重复的键。 这些值是数字,因此无法像使用字符串那样有意义地连接这些值。 对于每个键可以有多个数值的事实,是否有任何优雅的解释方法?我希望返回每个数字,而不是随机返回一个数字。 问题答案: $ cat YourMap.java public class Your

  • 问题内容: 从MySQL 4.1.0开始,可以在目标表wrt 或某个字段中已经插入的值(使用或或)时添加语句来指定行为。如果表中已经有或个字段的值,则将其替换为。 如果我的表中有多个 字段,该如何处理? 如果任一字段匹配,我只能进行一次更新吗? 仅当两个字段同时匹配时才能更新吗? 问题答案: 考虑 如果a和b是字段,则发生在。同样,当两个或多个条目满足条件时,更新仅执行一次。 此处带有ID和Nam

  • 问题内容: 我已经找到了单独使用mySQL的一些答案,但是我希望有人可以向我展示一种使用PHP处理插入/更新时获取mysql DB最后插入或更新的行的ID的方法。 当前,我有类似这样的内容,其中column3是唯一键,还有一个id列是自动递增的主键: $ my_id在INSERT上是正确的,但是在更新行时(在DUPLICATE KEY UPDATE上)是错误的。 我见过一些人建议您使用类似 在调用

  • 问题内容: 我知道,如果已经有该键的记录,您可以用来更新某个值, 我可以做这个: 但是,如何做到这一点而不必两次写出列和值呢? 问题答案: 不幸的是没有。 您可以不必重复该值而达到一半: 但是您仍然必须列出这些列。