使用ApachePOI在Selenium中处理excel时出现的问题

使用ApachePOI在Selenium中处理excel时出现的问题,excel,selenium-webdriver,apache-poi,Excel,Selenium Webdriver,Apache Poi,我在尝试执行此操作时遇到以下错误 线程“main”java.lang.NoClassDefFoundError中出现异常: org/apache/commons/compress/archivers/zip/ZipFile位于 org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:298)位于 org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37)

我在尝试执行此操作时遇到以下错误

线程“main”java.lang.NoClassDefFoundError中出现异常: org/apache/commons/compress/archivers/zip/ZipFile位于 org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:298)位于 org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37) 在 org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:307) 位于read_write.Readexcel.main(Readexcel.java:19)

原因:java.lang.ClassNotFoundException: org.apache.commons.compress.archivers.zip.ZipFile位于 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(未知 来源)在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(未知 源代码)位于java.base/java.lang.ClassLoader.loadClass(未知源代码)


我不确定是否已添加所有罐子。我已经添加了所有apache poi JAR和google collect

非常感谢,即使我遇到了同样的问题。添加压缩jar后问题得到解决

您显然没有添加所有jar,因此出现了异常!如果下载ApachePOI二进制软件包,并添加它附带的所有JAR,会发生什么?另请参见@Gagravarr:commons-compress-1.18.jar中缺少的
poi-ooxml
版本
4.0.0
中需要的
jar,链接组件映射中既没有提到它,也没有附带
poi-bin-4.0.0-20180907.zip
@AxelRichter:yay.。添加commons-compress-1.18.jar后它就可以工作了。当我安装1.5版本时,它给出了filenotfound:inputstream错误。但是使用1.18它工作得很好。谢谢感谢Gagravarraised在poi bin zip中丢失了commons compress jar,这就是为什么我喜欢使用支持maven和/或ivy repos的构建工具(显示commons compress依赖项)
My code:

package read_write;

import java.io.File;
import java.io.FileInputStream; 
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.google.common.base.Function;


public class Readexcel {

public static void main(String[] args) throws IOException {

    File src = new File("D:\\J\\clients_pw.xlsx");
    FileInputStream fis = new FileInputStream (src);
    XSSFWorkbook wb = new XSSFWorkbook(fis);
    XSSFSheet sheet1= wb.getSheet("MAS_details");
    String data1 = sheet1.getRow(1).getCell(0).getStringCellValue();
    System.out.println(data1);
}

}