Java 如何在while循环中增加我的行计数器变量?

Java 如何在while循环中增加我的行计数器变量?,java,while-loop,apache-poi,increment,Java,While Loop,Apache Poi,Increment,我试图将第一个单元格中包含数据的每一行读入对象的ArrayList。我的问题是,我的代码似乎没有将计数器的增量增加到第一行。我错过了一些简单的东西吗 代码 。。。我得到这个输出72次,因为在工作表中有72行 隔离回路 arraylistobj=newarraylist(); int rowCounter=16; int x=0; 而(rowCounter您没有在任何地方选择下一行,您的循环很混乱,在基于索引和迭代器的查找之间切换。请尝试一个简单的增强for循环: 使用调试器并逐行执行代码将帮助您

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

代码 。。。我得到这个输出72次,因为在工作表中有72行

隔离回路
arraylistobj=newarraylist();
int rowCounter=16;
int x=0;

而(rowCounter您没有在任何地方选择下一行,您的循环很混乱,在基于索引和迭代器的查找之间切换。请尝试一个简单的增强for循环:


使用调试器并逐行执行代码将帮助您发现问题,并将在将来为您节省无数个小时的调试时间。为什么不现在就开始执行?迭代器的用途是什么?int rowIndex=0;XSSFRow=sheet.getRow(rowIndex);实际上,您的“row”对象已经在循环外初始化,您只是在循环内玩同一个对象。我的迭代器遍历行中的每个单元格,如果该单元格不为null,则将其添加到ArrayList对象中@shmosel@YohannesGebremariam你是要我把那两行代码放进循环里吗?最后一件事一旦一个单元格为空,我就不想再读那一行了。我正在努力找出它的逻辑@shmosel@KyleHarbour将
if
更改为
if(cell==null){break;}并将下一行移出。使用增强的循环,只会获得存在的单元格,因此不会得到空单元格。打破空单元格的目的是什么?在电子表格中的行是否在行的中间有丢失的单元格?
        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++;
            }   
    }
[ValuSmart Series 1120 Double Hung]
ArrayList<Object> obj = new ArrayList<Object>();
int rowCounter = 16;
        int x = 0;

        while(rowCounter <= 21)
            {

                XSSFRow row = sheet.getRow(rowCounter);
                Iterator<Cell> rowItr = row.iterator();

                while(rowItr.hasNext() && rowItr.next() != null)
                    {

                                XSSFCell cell = row.getCell(x);


                                if(cell == null)
                                    {
                                        continue;
                                    }
                                else
                                    {

                                        obj.add(row.getCell(x).toString());
                                    }
                        x++;

                    }

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