Итератор для массива Java - PullRequest
       5

Итератор для массива Java

0 голосов
/ 10 октября 2018

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

Однако мне нужно поместить его в массив, и на данный момент я не знаю, как это сделать.работать с Итератором, потому что я передаю данные Excel в итератор.

Workbook workbook = WorkbookFactory.create(new File(pathConfig1));
//File
Iterator<Sheet> sheetIterator = workbook.sheetIterator();
Sheet sheet = workbook.getSheetAt(nbSheet1);
//Get index sheet user

Iterator<Row> rowIterator = sheet.rowIterator();
int nbLine= sheet.getLastRowNum() +1; 
//Number of Lines

int nbCol = sheet.getRow(0).getLastCellNum(); 
// Number of columns

String [][]data= new String[nbLine][nbCol];
//Array for the data

С этого момента я не знаю, как экспортировать данные в мой массив ... Есть идеи?

Я думал использовать 2 цикла для, но я не знаю, как увеличить мой итератор ...

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Как я понял, вы хотите хранить значения каждой ячейки в каждой строке в массиве, верно?Если это так, то вы можете использовать 2 цикла, и в этом случае итератор не обязателен.Я переписал ваш код и надеюсь, что он поможет.

Workbook workbook = WorkbookFactory.create(new File(pathConfig1));
// Iterator<Sheet> sheetIterator = workbook.sheetIterator();
Sheet sheet = workbook.getSheetAt(0);
// Iterator<Row> rowIterator = sheet.rowIterator(); 
int nbLine = sheet.getLastRowNum() + 1;
int nbCol = sheet.getRow(0).getLastCellNum();
String[][] data = new String[nbLine][nbCol];
for (int i = 0; i < nbLine; i++) {
    Row row = sheet.getRow(i);
    for (int j = 0; j < nbCol; j++) {
        Cell cell = row.getCell(j);
        data[i][j] = cell.toString();
    }
}
// Display
for (int i = 0; i < nbLine; i++) {
    StringBuffer buff = new StringBuffer();
    int j = 0;
    for (; j < nbCol - 1; j++) {
        buff.append(data[i][j]);
        buff.append(",");
    }
    buff.append(data[i][j]);
    System.out.println(buff.toString());
}
0 голосов
/ 10 октября 2018

Я не знаком с конкретной библиотекой, которую вы используете, но простой способ использовать итераторы для каждого цикла

Что-то вроде

for (Sheet sheet : workbook.sheetIterator()) {
    for (Row row : sheet.rowIterator()) {
        data[row][col] = //row.getCellValue()? Like I said, I don't know this library
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...