当尝试从excel文件运行简单读取测试时,java.lang.reflect.InvocationTargetException

当尝试从excel文件运行简单读取测试时,java.lang.reflect.InvocationTargetException,java,excel,selenium,apache-poi,filereader,Java,Excel,Selenium,Apache Poi,Filereader,我已经编写了一个非常简单的代码来读取Excel文件,该文件当前位于本地C驱动器上。我得到了java.lang.reflect.InvocationTargetException,在stackoverflow上建议了几种方法之后,我仍然无法从文件中读取它 代码如下: package com.rrd.rism.test.sel.specdetailspage; import org.openqa.selenium.WebDriver; import org.openqa.seleni

我已经编写了一个非常简单的代码来读取Excel文件,该文件当前位于本地C驱动器上。我得到了java.lang.reflect.InvocationTargetException,在stackoverflow上建议了几种方法之后,我仍然无法从文件中读取它

代码如下:

package com.rrd.rism.test.sel.specdetailspage;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.Test;

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

    import java.awt.AWTException;
    import java.awt.Robot;
    import java.awt.event.KeyEvent;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.sql.Array;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Properties;
    import java.util.concurrent.TimeUnit;

    import org.apache.commons.io.output.ByteArrayOutputStream;
    import org.apache.poi.hssf.util.HSSFColor;
    import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
    import org.apache.poi.ss.formula.functions.Column;
    import org.apache.poi.ss.usermodel.CellStyle;
    import org.apache.poi.ss.usermodel.Font;
    import org.apache.poi.ss.usermodel.IndexedColors;
    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.ss.usermodel.WorkbookFactory;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFCellStyle;
    import org.apache.poi.xssf.usermodel.XSSFColor;
    import org.apache.poi.xssf.usermodel.XSSFFont;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.openqa.selenium.By;
    import org.openqa.selenium.Keys;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.interactions.Actions;
    import org.testng.annotations.Test;



public class roleValidationforstatus 
{


    @Test
    public void f() throws IOException 
    {


      FileInputStream fis=new FileInputStream("C:\\**path**\\filename.xlsx");
      XSSFWorkbook wb = new XSSFWorkbook(fis);
      XSSFSheet sheet = wb.getSheetAt(0);

      int rowCount = sheet.getPhysicalNumberOfRows();
      System.out.println(rowCount);

      for (int a =1; a<=rowCount; a++)
      {
          String userName = "";
          XSSFRow row1 = sheet.getRow(a);
          XSSFCell cell1 = row1.getCell(1);
          userName = cell1.getStringCellValue();
          System.out.println(userName);
      }       
   }

}
package com.rrd.rism.test.sel.specdetailspage;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.chrome.ChromeDriver;
导入org.testng.annotations.Test;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.IOException;
导入java.awt.AWTException;
导入java.awt.Robot;
导入java.awt.event.KeyEvent;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.sql.Array;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Properties;
导入java.util.concurrent.TimeUnit;
导入org.apache.commons.io.output.ByteArrayOutputStream;
导入org.apache.poi.hssf.util.HSSFColor;
导入org.apache.poi.openxml4j.exceptions.InvalidFormatException;
导入org.apache.poi.ss.formula.functions.Column;
导入org.apache.poi.ss.usermodel.CellStyle;
导入org.apache.poi.ss.usermodel.Font;
导入org.apache.poi.ss.usermodel.IndexedColors;
导入org.apache.poi.ss.usermodel.Row;
导入org.apache.poi.ss.usermodel.Sheet;
导入org.apache.poi.ss.usermodel.工作簿;
导入org.apache.poi.ss.usermodel.WorkbookFactory;
导入org.apache.poi.xssf.usermodel.XSSFCell;
导入org.apache.poi.xssf.usermodel.XSSFCellStyle;
导入org.apache.poi.xssf.usermodel.XSSFColor;
导入org.apache.poi.xssf.usermodel.xssfont;
导入org.apache.poi.xssf.usermodel.XSSFRow;
导入org.apache.poi.xssf.usermodel.xssfheet;
导入org.apache.poi.xssf.usermodel.xssf工作簿;
导入org.apache.poi.ss.usermodel.Sheet;
导入org.openqa.selenium.By;
导入org.openqa.selenium.Keys;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.chrome.ChromeDriver;
导入org.openqa.selenium.interactions.Actions;
导入org.testng.annotations.Test;
公共类roleValidationforstatus
{
@试验
public void f()引发IOException
{
FileInputStream fis=新的FileInputStream(“C:\\**路径**\\filename.xlsx”);
XSSF工作簿wb=新XSSF工作簿(fis);
XSSFSheet-sheet=wb.getSheetAt(0);
int rowCount=sheet.getPhysicalNumberOfRows();
System.out.println(行计数);

对于(int a=1;a您需要以下四个罐子:

  • poi-3.13-20150929.jar
  • poi-ooxml-3.13-20150929.jar
  • poi-ooxml-schemas-3.13-20150929.jar
  • ooxml库\xmlbeans-2.6.0.jar
ooxml lib\dom4j-1.6.1.jar(在最新poi版本中不再需要)

快速启动


更新到最新的jar日期和版本。谢谢@Gagravarr

您丢失了更多库。文件名中的日期巧妙地显示,这些文件已超过3年。建议使用最新的ones@Gagravarr,谢谢你指出旧罐子。更新了答案。
    FAILED: f
    org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
        at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
        at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:427)
        at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:162)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:263)
        at com.rrd.rism.test.sel.specdetailspage.roleValidationforstatus.f(roleValidationforstatus.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:643)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128)
        at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
        at org.testng.TestRunner.privateRun(TestRunner.java:782)
        at org.testng.TestRunner.run(TestRunner.java:632)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
        at org.testng.SuiteRunner.run(SuiteRunner.java:268)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
        at org.testng.TestNG.run(TestNG.java:1064)
        at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
        at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
        at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
    Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
        ... 28 more
    Caused by: java.lang.NoClassDefFoundError: org/openxmlformats/schemas/spreadsheetml/x2006/main/StyleSheetDocument$Factory
        at org.apache.poi.xssf.model.StylesTable.readFrom(StylesTable.java:125)
        at org.apache.poi.xssf.model.StylesTable.<init>(StylesTable.java:96)
        ... 33 more
    Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument$Factory
        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)
        ... 35 more