如何在while循环中递增行计数器变量?

时间:2017-02-24 22:58:07

标签: java while-loop apache-poi increment

我试图将第一个单元格中包含数据的每一行读入对象的ArrayList。我的问题是我的代码似乎没有增加我的计数器超过第一行。我错过了一些简单的东西吗?

代码

.lp

输出

        try
            {
                wb = new XSSFWorkbook(new FileInputStream(fileName));
            } 
        catch (FileNotFoundException e)
            {
                e.printStackTrace();
            } 
        catch (IOException e)
            {   
                e.printStackTrace();
            }

        XSSFSheet sheet = wb.getSheetAt(2);
        ArrayList<Object> obj = new ArrayList<Object>();
        int rowIndex = 0;
        int cellIndex = 0;
        XSSFRow row = sheet.getRow(rowIndex);
        Iterator<Cell> rowItr = row.iterator();

        while(rowIndex <= sheet.getLastRowNum())
            {
                if(row.getCell(0) == null)
                    {
                        continue;
                    }
                else
                    {
                        while(rowItr.hasNext() && rowItr.next() != null)
                                    {
                                        XSSFCell cell = row.getCell(cellIndex);

                                        if(cell == null)
                                            {
                                                continue;
                                            }
                                        else
                                            {       
                                                obj.add(row.getCell(cellIndex).toString());
                                            }
                                        cellIndex++;
                                    }

                                rowIndex++;
                                cellIndex = 0;

                            }

                        System.out.println(obj.toString());
                    }
                rowIndex++;
            }   
    }

... 我得到了这个输出72次,因为表格中有72行

隔离循环

[ValuSmart Series 1120 Double Hung]

1 个答案:

答案 0 :(得分:1)

你不是在任何地方选择下一行,你的循环混乱并在基于索引和迭代器的查找之间切换。尝试使用简单的增强循环:

for (Row row : sheet) {
    for (Cell cell : row) {
        if (cell != null) {
            obj.add(row.getCell(x).toString());
        }
    }
}
System.out.println(obj.toString());