使用POI从Excel工作表中的下一行获取值

时间:2015-04-09 13:09:49

标签: java apache-poi import-from-excel

我使用Apache POI阅读Excel文档。如果current为空,我想从下一行获取单元格值。例如,从第一行获取所有非空单元格值和空单元格:移动到下一行并获取值。 这是我用来阅读Excel文档的代码

                //every sheet has rows, iterate over them
                Iterator<Row> rowIterator = sheet.iterator();

                if (rowIterator.hasNext())
                    rowIterator.next();

                while (rowIterator.hasNext()) 
                {

                    String libelle="";
                    .....

                    //Get the row object
                    Row row = rowIterator.next();

                    //Every row has columns, get the column iterator and iterate over them
                    Iterator<Cell> cellIterator = row.cellIterator();

                    while (cellIterator.hasNext()) 
                    {
                        //Get the Cell object
                        Cell cell = cellIterator.next();

                        //check the cell type and process accordingly
                        //2nd column

                        switch(cell.getCellType()){
                        case Cell.CELL_TYPE_STRING:

                            ......
                            if (row.getCell(5) == null)
                            {
                               System.out.println("Cell is Empty in Column:" );

                            } else if (row.getCell(5).getCellType() == HSSFCell.CELL_TYPE_STRING)
                            {
                            libelle= row.getCell(5).getStringCellValue().trim();
                            }

...

2 个答案:

答案 0 :(得分:4)

您可以使用Sheet.getRow(int rownumber)获取具有特定号码的行。 您可以通过Row.getRowNum()获取当前行的号码,并通过Cell.getColumnIndex()获取该单元格的索引。

因此,下一行中单元格的值将为

Row nextRow = sheet.getRow(row.getRowNum() + 1);
if (nextRow != null)
    String value = nextRow.getCell(curCel.getColumnIndex(), Row.CREATE_NULL_AS_BLANK).getStringCellValue();

答案 1 :(得分:1)

如果计算出的索引小于Cell.getRowIndex(),则可以通过Sheet.getRow(int)方法查找当前Sheet.getLastRowNum()以访问下一个Row,以便访问{{3}以下Cell的{​​{1}}。