使用ApachePOI在Selenium中处理excel时出现的问题
我在尝试执行此操作时遇到以下错误 线程“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(未知源代码)使用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)
我不确定是否已添加所有罐子。我已经添加了所有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);
}
}