Ошибка «Не удается получить значение STRING из числовой ячейки» при чтении Excel с Apache POI - PullRequest
0 голосов
/ 24 сентября 2019

У меня ошибка при чтении числовой ячейки из 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;

    }
}
...