如何迭代第一列然后行来读取java

时间:2017-05-04 05:22:58

标签: java

我想阅读一张excel表 所以我想读取我的第一列数据并迭代所有行然后第二列 那怎么办呢。

我尝试先使用行迭代,然后再使用coloumn

  Iterator < Row > rowIterator = sheetName.iterator();

  while (rowIterator.hasNext()) {
   Row row = rowIterator.next();
   Iterator < Cell > cellIterator = row.cellIterator();

   while (cellIterator.hasNext()) {
    Cell cell = cellIterator.next();
   }
  }

2 个答案:

答案 0 :(得分:1)

如果我理解你正确的问题,那么你试图首先迭代列然后行。这是你可能想要做的。希望它有所帮助:

Sheet sheet = workbook.getSheetAt(0);
    for(int i=0; i<sheet.getRow(sheet.getTopRow()).getLastCellNum(); i++){
        Iterator<Row> rowIterator=sheet.rowIterator();
        while(rowIterator.hasNext()){
            System.out.println(rowIterator.next().getCell(i)); //do what you want

        }

    }

答案 1 :(得分:0)

如果我理解这个问题,则想从excel逐列读取数据。即读取整个Column1,然后移至Column2,依此类推。

如果这是您的要求,请在Java中找到代码段。

// Getting List of Column Headers in the sheet and saving the same to a list
int masterSheetColumnIndex = sheet.getColumns();
List<String> ExpectedColumns = new ArrayList<String>();
for (int x = 0; x < masterSheetColumnIndex; x++) {
    Cell celll = sheet.getCell(x, 0);
    String d = celll.getContents();
    System.out.println("d : "+d);
    ExpectedColumns.add(d);
}

columnDataValues = new LinkedHashMap<String, List<String>>();
List<String> column1 = new ArrayList<String>();
// read values from excel sheet for each column
for (int j = 0; j < masterSheetColumnIndex; j++) {
    column1 = new ArrayList<String>();
    for (int i = 1; i < sheet.getRows()-7; i++) {
        Cell cell = sheet.getCell(j, i);
        column1.add(cell.getContents());
        System.out.println("cell.getContents() : "+cell.getContents());
    }
    columnDataValues.put(ExpectedColumns.get(j), column1);
}

如果以上代码中有任何查询,请还原。

相关问题