Java Selenium Webdriver:读取.xls文件时获取Nullpointerexception,但无法读取该文件

Java Selenium Webdriver:读取.xls文件时获取Nullpointerexception,但无法读取该文件,java,excel,selenium,selenium-webdriver,nullpointerexception,Java,Excel,Selenium,Selenium Webdriver,Nullpointerexception,我试图从.xls文件中获取数据,但当它试图从.xls文件中读取工作表时,它抛出nullpointerexception 线程“main”java.lang.NullPointerException中出现异常 位于lib.ExcelDataConfig.getData(ExcelDataConfig.java:31) 位于data.ReadData.main(ReadData.java:15) 以下是我的代码: 1。ReadData.java public class ReadData { /*

我试图从.xls文件中获取数据,但当它试图从.xls文件中读取工作表时,它抛出nullpointerexception

线程“main”java.lang.NullPointerException中出现异常 位于lib.ExcelDataConfig.getData(ExcelDataConfig.java:31) 位于data.ReadData.main(ReadData.java:15)

以下是我的代码:

1。ReadData.java

public class ReadData {

/**
 * @param args
 */
public static void main(String[] args) {

    String path=System.getProperty("user.dir");
    ExcelDataConfig dc=new ExcelDataConfig(path+"\\file\\TestData.xls");

    String data=dc.getData("Sheet1", 0, 0);
    System.out.println(data);
}
public class ExcelDataConfig {

HSSFWorkbook wb;
HSSFSheet sheet;
public ExcelDataConfig(String filepath){

    try {
        File fl=new File(filepath);
        FileInputStream fis=new FileInputStream(fl);
        HSSFWorkbook wb=new HSSFWorkbook(fis);

    } catch (Exception e) {

        e.printStackTrace();
    }

}

public String getData(String sheetName, int row, int col) {
    sheet=wb.getSheet(sheetName);//throws exception at 
    String data=sheet.getRow(row).getCell(col).getStringCellValue();

    return data;
}

 }
}

2.ExcelDataConfig.java

public class ReadData {

/**
 * @param args
 */
public static void main(String[] args) {

    String path=System.getProperty("user.dir");
    ExcelDataConfig dc=new ExcelDataConfig(path+"\\file\\TestData.xls");

    String data=dc.getData("Sheet1", 0, 0);
    System.out.println(data);
}
public class ExcelDataConfig {

HSSFWorkbook wb;
HSSFSheet sheet;
public ExcelDataConfig(String filepath){

    try {
        File fl=new File(filepath);
        FileInputStream fis=new FileInputStream(fl);
        HSSFWorkbook wb=new HSSFWorkbook(fis);

    } catch (Exception e) {

        e.printStackTrace();
    }

}

public String getData(String sheetName, int row, int col) {
    sheet=wb.getSheet(sheetName);//throws exception at 
    String data=sheet.getRow(row).getCell(col).getStringCellValue();

    return data;
}

 }

检查构造函数ExcelDataConfig是否正确初始化了wb字段,wb可能为空。您可以在getData()方法中添加空检查。感谢@Mateusz Sroka的回复。但是我们怎么能检查呢?你能帮我一下吗?使用if(wb==null){抛出新的非法状态异常(“wb未初始化”);}Nope。wb不为空。仍在获取nullpointerexception:-(检查sheet变量是否为null,因为如果提供的文件中没有名为Sheet1的工作表,则getSheet()方法可以返回null。