Почему я получаю исключение NullPointerException для следующего кода - PullRequest
0 голосов
/ 24 октября 2019

Я читаю файл Excel, используя Apache POI API. Я написал полезный класс. Но когда я вызываю этот метод, я получаю ошибку, которая упоминается ниже. Пожалуйста, помогите мне выяснить ошибку.

public class TestUtil {

    public static int PAGE_LOAD_TIME = 20;
    public static int IMPLICIT_WAIT = 10;
    static Workbook book;`enter code here`
    static Sheet sheet;

    public static Object[][] getTestData(String sheetName){
        FileInputStream file = null;
        try {
                file = new FileInputStream("/home/khawer/eclipse-workspace/DemoSite/src/main/java/com/qa/demo/testdata/testdata.xlsx");
                book = WorkbookFactory.create(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        sheet = book.getSheet(sheetName);
        Object[][] data = new Object[sheet.getLastRowNum()][sheet.getRow(0).getLastCellNum()];

        for(int i = 0; i < sheet.getLastRowNum(); i++) {

            for(int j = 0; j < sheet.getRow(0).getLastCellNum(); j++) {

                data[i][j] = sheet.getRow(i + 1).getCell(j).toString();
            }   
        }

        return data;
   }

}
[Utils] [ERROR] [Error] java.lang.NullPointerException
    at com.qa.demo.util.TestUtil.getTestData(TestUtil.java:38)
    at com.qa.demo.testcases.ContactsTest.getDemoData(ContactsTest.java:36)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)

1 Ответ

0 голосов
/ 24 октября 2019

Как упомянуто в аде, проверьте строку № 38, поскольку мы не можем угадать строку 38 в упомянутом коде.

Возможные причины: 1. Неправильный путь или вкладка Excel (если в одном Excel существует несколько вкладок) 2. Если лист полностью пуст 3. Если есть верхняя пустая строка или между строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...