【问题标题】:Iterator to array Java数组Java的迭代器
【发布时间】:2019-03-14 17:49:05
【问题描述】:

我正在 Netbeans 上使用 Java 开发一个小应用程序,我需要将 Excel 文件的数据导出到一个数组,然后处理这个数组。 为了得到excel,我使用Apache POI,我可以在consol中显示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 循环,但我不知道如何增加我的迭代器...

【问题讨论】:

    标签: java arrays excel iterator


    【解决方案1】:

    据我了解,您想将每行中的每个单元格值存储在一个数组中,对吗?如果是这种情况,是的,您可以使用 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());
    }
    

    【讨论】:

      【解决方案2】:

      我不熟悉您正在使用的特定库,但使用迭代器的一种简单方法是在 for each 循环中

      类似

      for (Sheet sheet : workbook.sheetIterator()) {
          for (Row row : sheet.rowIterator()) {
              data[row][col] = //row.getCellValue()? Like I said, I don't know this library
          }
      }
      

      【讨论】:

      • 一开始我也在考虑类似的事情,第一次使用这个库!感谢您尝试 btw ;)
      猜你喜欢
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2023-01-28
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多