У меня ошибка при чтении числовой ячейки из Excel с использованием Apache POI.
Я создал код для чтения Excel для веб-драйвера Selenium с использованием Apache POI, но он генерирует следующую ошибку:
Cannot get a STRING value from a NUMERIC cell
null
Код:
package nexam.utilities;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelReader {
static String path;
static XSSFWorkbook workbook;
static XSSFSheet sheet;
public ExcelReader(String excelPath, String sheetName) {
try {
workbook = new XSSFWorkbook(excelPath);
sheet = workbook.getSheet(sheetName);
} catch (IOException e) {
e.printStackTrace();
}
}
public int getRowCount() {
int rowCount = 0;
try {
rowCount = sheet.getPhysicalNumberOfRows();
//System.out.println("no of rows :" + rowCount);
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.getCause());
e.printStackTrace();
}
return rowCount;
}
public int getColCount() {
int colCount=0;
try {
colCount = sheet.getRow(0).getPhysicalNumberOfCells();
//System.out.println("no of col :" + colCount);
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.getCause());
e.printStackTrace();
}
return colCount;
}
public String getcellDataString(int rowNum, int colNum) {
String cellData = null;
try {
cellData = sheet.getRow(rowNum).getCell(colNum).getStringCellValue();
System.out.println("cell string data :" + cellData);
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.getCause());
e.printStackTrace();
}
return cellData;
}
public double getcellDataNumber(int rowNum, int colNum) {
double cellData = 0;
try {
cellData = sheet.getRow(rowNum).getCell(colNum).getNumericCellValue();
//System.out.println("cell string data :" + cellData);
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.getCause());
e.printStackTrace();
}
return cellData;
}
}