java.lang.nullpoInterException at org.apache.poi.xssf.usermodel
在实际管道中(本地工作)我遇到了一个错误:
[Utils] [ERROR] [Error] java.lang.NullPointerException
at org.apache.poi.xssf.usermodel.XSSFWorkbook.getSheet(XSSFWorkbook.java:1112)
at utilities.ExcelData
以下是我使用的代码。
@DataProvider
public Object[][] GetDataFromExcelSheet() throws Exception {
System.out.println("Enter GetDataFromExcelSheet");
// Get all the data of excel method
// Main Objective: Create data array which will contain excel data
ExcelDataProvider excelDataProviderObj = new ExcelDataProvider();
// 1. Find excel sheet name
excelDataProviderObj.GetSheetName(PropertiesfileDataProvider.GetPropertyValue("nameofthesheet"));
// 2. Find total rows of excel
int rows = excelDataProviderObj.FindTotalRows();
System.out.println("number of rows found as: " +rows);
Object[][] data = new Object[rows][6];
for (int i = 0; i < rows; i++)
{
data[i][0] = excelDataProviderObj.GetCellData(i, 0);
data[i][1] = excelDataProviderObj.GetCellData(i, 1);
data[i][2] = excelDataProviderObj.GetCellData(i, 2);
data[i][3] = excelDataProviderObj.GetCellData(i, 3);
data[i][4] = excelDataProviderObj.GetCellData(i, 4);
data[i][5] = excelDataProviderObj.GetCellData(i, 5);
}
System.out.println("Exit GetDataFromExcelSheet");
return data;
}
public class ExcelDataProvider
{
XSSFSheet sheetName;
public void GetSheetName(String SheetName) throws Exception
{
System.out.println("Enter GetSheetName");
File file=new File(".\\TestData\\TestData.xlsx");
FileInputStream fs=new FileInputStream(file);
XSSFWorkbook wb=new XSSFWorkbook(fs);
//CommonFunctions commonFunctionsObj=new CommonFunctions(driver);
if(PropertiesfileDataProvider.GetPropertyValue("URL").contains("urltag"))
{
sheetName= wb.getSheet(SheetName);
}
else
sheetName= wb.getSheet(SheetName);
System.out.println("Exit GetSheetName");
}
public int FindTotalRows()
{
int totalRows=sheetName.getLastRowNum()+1;
//System.out.println(totalRows);
//System.out.println(sheetName);
return totalRows;
}
public String GetCellData(int row,int column)
{
String data=sheetName.getRow(row).getCell(column).getStringCellValue();
//String data=sheetName.getRow(row).getCell(column).getColumnIndex();
//String data=sheetName.getRow(row).getCell(column).toString();
System.out.println(data);
return data;
}
}
In the actual pipeline (locally it works) I am getting an error:
[Utils] [ERROR] [Error] java.lang.NullPointerException
at org.apache.poi.xssf.usermodel.XSSFWorkbook.getSheet(XSSFWorkbook.java:1112)
at utilities.ExcelData
See this screenshot for the full error message.
Below is the code that I've used.
@DataProvider
public Object[][] GetDataFromExcelSheet() throws Exception {
System.out.println("Enter GetDataFromExcelSheet");
// Get all the data of excel method
// Main Objective: Create data array which will contain excel data
ExcelDataProvider excelDataProviderObj = new ExcelDataProvider();
// 1. Find excel sheet name
excelDataProviderObj.GetSheetName(PropertiesfileDataProvider.GetPropertyValue("nameofthesheet"));
// 2. Find total rows of excel
int rows = excelDataProviderObj.FindTotalRows();
System.out.println("number of rows found as: " +rows);
Object[][] data = new Object[rows][6];
for (int i = 0; i < rows; i++)
{
data[i][0] = excelDataProviderObj.GetCellData(i, 0);
data[i][1] = excelDataProviderObj.GetCellData(i, 1);
data[i][2] = excelDataProviderObj.GetCellData(i, 2);
data[i][3] = excelDataProviderObj.GetCellData(i, 3);
data[i][4] = excelDataProviderObj.GetCellData(i, 4);
data[i][5] = excelDataProviderObj.GetCellData(i, 5);
}
System.out.println("Exit GetDataFromExcelSheet");
return data;
}
public class ExcelDataProvider
{
XSSFSheet sheetName;
public void GetSheetName(String SheetName) throws Exception
{
System.out.println("Enter GetSheetName");
File file=new File(".\\TestData\\TestData.xlsx");
FileInputStream fs=new FileInputStream(file);
XSSFWorkbook wb=new XSSFWorkbook(fs);
//CommonFunctions commonFunctionsObj=new CommonFunctions(driver);
if(PropertiesfileDataProvider.GetPropertyValue("URL").contains("urltag"))
{
sheetName= wb.getSheet(SheetName);
}
else
sheetName= wb.getSheet(SheetName);
System.out.println("Exit GetSheetName");
}
public int FindTotalRows()
{
int totalRows=sheetName.getLastRowNum()+1;
//System.out.println(totalRows);
//System.out.println(sheetName);
return totalRows;
}
public String GetCellData(int row,int column)
{
String data=sheetName.getRow(row).getCell(column).getStringCellValue();
//String data=sheetName.getRow(row).getCell(column).getColumnIndex();
//String data=sheetName.getRow(row).getCell(column).toString();
System.out.println(data);
return data;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论