找不到 Apache poi 库



我第一次尝试apache poi库来管理Execel文件。我按照以下步骤导入apache poi:在Intellij for JAVA中导入apache poi。代码编译没有错误,但当我运行它给我这个错误消息:

线程"main"异常java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject在Test.main (Test.java: 16)原因:java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject在java.base/jdk.internal.loader.BuiltinClassLoader.loadClass (BuiltinClassLoader.java: 636)在java.base/jdk.internal.loader.ClassLoaders AppClassLoader.loadClass美元(ClassLoaders.java: 182)在java.base/java.lang.ClassLoader.loadClass (ClassLoader.java: 519)…1

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Test {
public static void main(String[] args) {
try {
File file = new File("C:\Users\Huawei\IdeaProjects\untitled\src\TEST.xlsx");
FileInputStream fis = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheetAt(0);
Iterator<Row> itr = sheet.iterator();
while(itr.hasNext()){
Row row = itr.next();
Iterator<Cell> celliterator = row.cellIterator();
while(celliterator.hasNext()){
Cell cell = celliterator.next();
switch (cell.getCellType()){
case STRING:    //field that represents string cell type
System.out.print(cell.getStringCellValue() + "ttt");
break;
case NUMERIC:    //field that represents number cell type
System.out.print(cell.getNumericCellValue() + "ttt");
break;
default:
System.out.println("NOT NUMERIC AND NOT STRING");
}
}
}
}catch (Exception e ){
e.printStackTrace();
}
}
}

这似乎是一个经典的Maven项目,.jar下载而不是通过mvn命令安装。

如果ClassNotFoundException在运行时上升,这是因为你的项目在编译后找不到库。

是这样吗?如果是这样,您必须通过mvn install添加.jar,并在pom.xml中声明它。一个更好的解决方案是直接添加maven依赖项:

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>

最新更新