当前位置: 首页 > 知识库问答 >
问题:

用Excel为Testng Dataprovider获取“java.lang.NoClassDefoundError”

董谦
2023-03-14

我无法通过错误“java.lang.NoClassDefFoundError”

测试类代码:

@DataProvider(name ="calldata")
public Object[][] getData() {

    ExcelUtility util = new ExcelUtility("excel path");

    int rows = util.getRowCount(0);

    Object data [][] = new Object[rows] [6];

    for(int i=1; i<rows; i++)
    {
        data[i][0]=util.getData(0, i, 0);
        data[i][1]=util.getData(0, i, 1);
        data[i][1]=util.getData(0, i, 2);
        data[i][1]=util.getData(0, i, 3);
        data[i][1]=util.getData(0, i, 4);
        data[i][1]=util.getData(0, i, 5);
    }

    return data;
}

@Test(dataProvider ="calldata")
 public void AddaDependent(String url, String client, String eliggrp, String empnumber, String firstname, String SSN) 
    {

Excel实用程序代码:

封装AllExcel;

XSSFWorkbook wb;
XSSFSheet sheet1;

public ExcelUtility(String excelPath)
{
    try
    {
        File src = new File(excelPath);

        FileInputStream fis= new FileInputStream(src);
        wb = new XSSFWorkbook(fis);

    }
    catch (Exception e) {
        System.out.println(e.getMessage());

    }
}

public String getData(int sheetNumber, int row, int column)
{
    sheet1 = wb.getSheetAt(0);

    String data = sheet1.getRow(row).getCell(column).getStringCellValue();

    return data;
}

public int getRowCount(int sheetIndex)
{
    int row = wb.getSheetAt(sheetIndex).getLastRowNum();

    row = row+1;

    return row;
}

[RemoteTestNG]检测到TestNG Version6.14.3[Utils][ERROR]java.lang.noClassDeffounderror:org/apache/commons/compress/archivers/zipfile at org.apache.poi.openxml4j.opc.opcpackage.open(OpcPackage.java:298)at org.apache.poi.ooxml.util.packageHelper.open(PackageHelper.java:37)at在sun.reflect.nativeMethodAccessorImpl.Invoke0(本机方法)在sun.reflect.nativeMethodAccessorImpl.Invoke(未知源)在sun.reflect.DelegatingMethodAccessorImpl.Invoke(未知源)在java.lang.reflect.Method.Invoke(未知源)

共有1个答案

丁阳羽
2023-03-14

只要您不使用Maven,就可以从这里下载jar。将它添加到您的类路径中,它应该可以工作:https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.2

原因是,Apache已经从Commons-Collections4-4.0中删除了ListValuedMap接口。

 类似资料:
  • 问题内容: 我想阅读给应用于xlsx文档中单元格的样式的名称。我已经提取了文件,并且在xl / styles.xml中可以找到样式名称: 我想要的样式名称是“测试样式”。目前,我有以下代码,并且我可以获取xfId而不是名称: 有谁知道我是否可以用poi获得样式名称,以及我将如何进行? 如果这不可能,那么我可以基于xfId将背景颜色设为rgb吗? 问候 问题答案: 经过大量的挖掘,我找到了解决方案。

  • 问题内容: 尝试使用ApachePOI打开Excel时,我得到 我检查了。没有创建这样的文件夹。我正在使用Apache POI 3.6版。 有什么帮助吗?类似的代码在其他工作区中运行良好。在这里不知所措。 码: 问题答案: 您为什么要制作一个非常好的文件,将其包装在中,然后要求POI必须为您缓冲整个文件,以便可以进行随机访问?如果直接将文件直接传递给POI,生活会好很多,因此可以根据需要跳过它!

  • 问题内容: 为了进行一些统计分析,我需要在Excel工作表的列中提取值。我一直在使用Apache POI包从Excel文件中读取数据,当需要迭代行时,它可以很好地工作。但是我找不到关于在API(链接文本)或通过Google搜索获取列的任何信息。 由于我需要获取不同列的最大值和最小值并使用这些值生成随机数,因此,无需选择单个列,唯一的选择是遍历行和列以获取值并一一比较。听起来不那么省时。 关于如何解

  • 下面的代码用于获取excel文件(.xlsx)的工作表名称 上面的代码存在的问题是,为一个9MB大小的文件创建需要占用大量内存(~700MB)&时间很长(5-6s)。即使将设置为也不会释放占用的内存(我知道可能被调用,也可能不被调用&JVM不会仅仅因为我将变量设置为null而释放内存) 我确实浏览了Workbook,XSSFWorkbook&根据我的理解,没有任何方法可以帮助我获得内存印记较低的工

  • 问题内容: 我有以下代码用于获取excel文件的工作表名称(.xlsx) 我上面的代码存在的问题是,为9MB大小的文件创建文件需要花费大量内存(〜700MB)和较长时间(5-6s)。即使将设置为,也不会释放占用的内存(我知道可能会叫,也可能不会叫&JVM不会因为我将变量设置为null而释放内存) 我确实浏览了Workbook,XSSFWorkbook的文档,据我了解,没有任何方法可以帮助我获得内存

  • 问题内容: 我必须将 算法从Excel工作表移植到python代码, 但必须对 Excel文件中的算法 进行 反向工程 。 Excel工作表非常复杂,它包含许多单元格,在这些单元格中有引用其他单元格的公式(也可以包含公式或常数)。 我的想法是使用python脚本分析工作表,以构建一种单元格之间的依存关系表,即: A1取决于B4,C5,E7公式:“ = sqrt(B4)+ C5 * E7” A2取决