java - 无法使用 Apache POI 读取 excel 抛出 NoClassDefFoundError

标签 java selenium selenium-webdriver apache-poi

下面附上使用POI读取Excel文件的代码作为初学者需要帮助

package genericReusable;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;

import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelReader 
{

        public String[] readExcel(String filePath,String fileName,String sheetName) throws IOException
        {

                    //Create a object of File class to open xlsx file
                        File file =    new File(filePath);//new File(filePath+"\\"+fileName);

                    //Create an object of FileInputStream class to read excel file
                        FileInputStream inputStream = new FileInputStream(file);


                        Workbook wrkbk = new XSSFWorkbook(inputStream);

                        //Read sheet inside the workbook by its name
                        Sheet sheet = wrkbk.getSheet(sheetName);

                        //Find number of rows in excel file
                        int rowCount = sheet.getLastRowNum()-sheet.getFirstRowNum();

                        // Array list to Store the Data
                        ArrayList<String> Data_Array = new ArrayList<String>( );

                        //Create a loop over all the rows of excel file to read it
                        for (int i = 1; i < rowCount+1; i++) 
                        {
                            Row row = sheet.getRow(i);

                            //Create a loop to print cell values in a row
                            for (int j = 0; j < row.getLastCellNum(); j++) 
                            {

                            //Print excel data in console
                            System.out.print(row.getCell(j).getStringCellValue()+"|| ");

                            Data_Array.add(row.getCell(j).getStringCellValue());

                            }

                            System.out.println();

                        }

                        return (String[]) Data_Array.toArray( new String[ Data_Array.size() ] );

        }




public static void main(String...strings) throws IOException

{


ExcelReader obj = new ExcelReader();
String filePath = System.getProperty("user.dir")+"\\src\\genericReusable";


obj.readExcel(filePath,"ExportExcel.xlsx","Login");

}
}

运行代码会显示以下错误。不知道为什么出现 NoClassDefFoundError 因为我已将文件放置在正确的位置 需要有关使用 Apache POI 传递 Excel 和阅读的帮助

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
at genericReusable.ExcelReader.readExcel(ExcelReader.java:26)
at genericReusable.ExcelReader.main(ExcelReader.java:73)
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)
... 2 more

最佳答案

正如错误所示,它无法找到项目中正在使用的依赖类。

您必须在项目中添加 XmlBeans 依赖项。添加它,错误就会消失。

您可以从here下载jar .

关于java - 无法使用 Apache POI 读取 excel 抛出 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42517694/

相关文章:

java - Thrift 是否有针对 Java 的异步服务器端方法定义?

java - 使用 JasperXlsxExporterBuilder 在工作表中进行不同的列分割

Java 泛型帮助

java - Android:执行单元测试时 Android 支持中的 IllegalStateException

Internet Explorer 模式下的 Python Selenium Edge 浏览器

java - 有没有办法我只能声明这些组一次?

selenium - java.lang.NoSuchMethodError : javax. ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)

java - Selenium Webdriver java rootWebElement.findElements 忽略子子项?

javascript - 如何使用 Protractor 在富文本编辑器上使用 SendKeys 函数?

java - Selenium 偶尔出现 UnreachableBrowserException