Невозможно понять, когда значение «i» является постоянным, а 2-х мерный массив работает нормально при правильном получении значения из каждой строки - PullRequest
0 голосов
/ 25 апреля 2020

Код:

public String[][] getExcelData(String excellocation, String sheetName) {
    try {
        String dataSets[][] = null;
        FileInputStream file = new FileInputStream(new File(excellocation));

        // Create Workbook instance holding reference to .xlsx file
        XSSFWorkbook workbook = new XSSFWorkbook(file);
        // Get first/desired sheet from the workbook
        XSSFSheet sheet = workbook.getSheet(sheetName);
        // count number of active rows
        int totalRow = sheet.getLastRowNum();
        // count number of active columns in row
        int totalColumn = sheet.getRow(0).getLastCellNum();
        // Create array of rows and column
        dataSets = new String[totalRow][totalColumn];
        // Iterate through each rows one by one
        Iterator<Row> rowIterator = sheet.iterator();
        DataFormatter formatter = new DataFormatter();
        int i = 0;
        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            // For each row, iterate through all the columns
            Iterator<Cell> cellIterator = row.cellIterator();
            int j = 0;
            while (cellIterator.hasNext()) {

                Cell cell = cellIterator.next();
                if (cell.getStringCellValue().contains("TestCases")) {
                    break;
                }

                // Check the cell type and format accordingly
                switch (cell.getCellType()) {
                case Cell.CELL_TYPE_NUMERIC:
                    dataSets[i][j++] = cell.getStringCellValue();
                    System.out.println(cell.getStringCellValue());
                break;
                case Cell.CELL_TYPE_STRING:
                    dataSets[i][j++] = cell.getStringCellValue();
                    System.out.println(cell.getStringCellValue());
                    break;
                }

            }

            System.out.println("");


        }
        file.close();
        return dataSets;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

public static void main(String[] args) throws IOException {
    String excellocation = "C:\\Users\\Sivaranjani Gopal\\Desktop\\siva.xlsx";
    String sheetName = "testdata";
    ExcelReaderpg excel = new ExcelReaderpg();
    Object[][] data = excel.getExcelData(excellocation, sheetName);
}

Примечание:

1. Мой запрос - это всегда значение i, равное 0. Поэтому набор данных [0] [1] для 1-й строки

для второй строки должен быть набор данных [1] [0] [1] [1] и т. Д.

почему значение i остается тем же, и я получаю желаемый вывод.

Может ли кто-нибудь объяснить значение реализации i и j в массиве

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