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

时间:2016-01-13 23:50:52

标签: java excel selenium apache-poi filereader

我写了一个非常简单的代码来从Excel文件中读取,目前在我的本地C盘上。我收到java.lang.reflect.InvocationTargetException,并且在stackoverflow上建议了几个方法后,我仍然无法从文件中读取它。

以下是代码:

undefined

以下是我目前使用的.jar文件列表:

List of Jar files

这是我得到的错误:

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);
      }       
   }

}

我已经厌倦了以下事情:

- 安装了较新版本的XML bean

-File存在且可访问,系统可以找到它

- 确保所有的依赖.jar文件来自同一个版本(11 poi,ooxml等)。

我还想补充一点,我没有在这台机器上安装excel,因为我的公司没有许可证。所以我使用谷歌驱动器创建了这个文件,并使用Excel查看器读取文件。

请协助。 谢谢。

1 个答案:

答案 0 :(得分:0)

您需要以下四个罐子:

  • POI-3.13-20150929.jar
  • POI-OOXML-3.13-20150929.jar
  • POI-OOXML-架构 - 3.13-20150929.jar
  • OOXML-LIB \的xmlbeans-2.6.0.jar

ooxml-lib \ dom4j-1.6.1.jar(最新的poi版本不再需要)

快速启动link

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