使用尝试在Selenium中读取Excel时出现Nullpointer异常

时间:2018-10-26 18:20:49

标签: java selenium selenium-webdriver apache-poi testng

大家好,我在每个地方都搜寻了解决方案,但找不到。为什么我为此得到空指针异常?请把我整理出来。它显示为“仅路径错误”,但我仅正确指定了它。

我的代码:

package UsingExcel;

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

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.sun.rowset.internal.Row;

public class Demo 
{

    public void ReadExcel(String filepath,String filename,String Sheetname) throws IOException
    {
        File file = new File(filepath); // line 21

        FileInputStream stream = new FileInputStream(file);

        Workbook Mybook = null;

        String FileExtensionnname = filename.substring(filename.indexOf("."));

        if(FileExtensionnname.equals(".xlsx"))
        {
            Mybook = new XSSFWorkbook(stream);
        }
        else if(FileExtensionnname.equals(".xls"))
        {
            Mybook = new HSSFWorkbook(stream);
        }

        Sheet filesheet = Mybook.getSheet(Sheetname);

        int rowcount = filesheet.getLastRowNum()-filesheet.getFirstRowNum();

        for(int i=0;i<rowcount+1;i++)
        {
            org.apache.poi.ss.usermodel.Row row =filesheet.getRow(i);

            for(int j=0;j<row.getLastCellNum();j++)
            {
                System.out.println(row.getCell(j).getStringCellValue()+ "||");
            }

            System.out.println();
        }
    }

    public static void main(String[] args) throws IOException
    {
        Demo excelfile =  new Demo();

        String filepath = System.getProperty("E:\\Mybook.xlsx");

        excelfile.ReadExcel(filepath, "Mybook.xlsx", "DemoExcel");
        }

}

我的错误是:

Exception in thread "main" java.lang.NullPointerException
    at java.io.File.<init>(Unknown Source)
    at UsingExcel.Demo.ReadExcel(Demo.java:21)
    at UsingExcel.Demo.main(Demo.java:61)

希望您已了解我的问题,请进行排序。但是,当我使用Excel测试登录页面不会出现任何问题时,现在我尝试在 控制台无法正常工作。

1 个答案:

答案 0 :(得分:3)

您的文件路径应该只是

String filepath = "E:\\Mybook.xlsx",请不要使用System.getProperty

来自文档:

  

获取由指定键指示的系统属性

正在将空值传递给您的方法ReadExcel(...),因为没有定义为 E:\ Mybook.xlsx

System 属性