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