java - Apache POI ClassNotFoundException 异常

标签 java eclipse apache-poi

我正在使用 eclipse 尝试从 excel 电子表格中获取工作表列表,但是当我运行它时,Java 会抛出异常。

这是代码;

File myFile = new File("excel.xlsx");
    Workbook wb = null;
    try {
        wb = WorkbookFactory.create(myFile);
    } catch (EncryptedDocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvalidFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    List<String> sheetNames = new ArrayList<String>();
    for (int i=0; i<wb.getNumberOfSheets(); i++) {
        sheetNames.add( wb.getSheetName(i) );
    }
    System.out.println(sheetNames);

这是日志;

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:293)
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:252)
    at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:231)
    at com.cogentautomation.view.View.main(View.java:19)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject
    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)
    ... 4 more

我已将以下内容作为库包含在 eclipse java 构建路径中;

  • 公共(public)编解码器
  • 公共(public)日志
  • 联合
  • log4j
  • 兴趣点
  • poi-ooxml
  • poi-scratchpad

我知道解决方案很简单,但我的脑子一片空白。我没有使用行家。

最佳答案

您将需要添加 XMLBeans 依赖项。您可以从这里添加依赖项 https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans/2.6.0

关于java - Apache POI ClassNotFoundException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39296247/

相关文章:

java - 包含作为参数传递的对象的函数的设计困难

.net - 使用 POI 将 DOC 导出为 PDF

java - POI 读取文件而不更新文件时间戳

java - 如何获取Excel中选定字符串的行、列坐标

java - 同一实体关系的 hibernate 辅助表

java - 在java中读取数字文件并计算平均值

eclipse - 向 eclipse RCP 应用程序添加自动启动插件

java - Android ArrayIndexOutOfBoundsException 向 mysql 插入行

java - spring-retry Retryble 注释与 retryTemplate

java - 对于接收外部事件以更新 GUI 元素的 SWT View (ViewPart),推荐的方法是什么?