Java 如何在while循环中增加我的行计数器变量?
我试图将第一个单元格中包含数据的每一行读入对象的ArrayList。我的问题是,我的代码似乎没有将计数器的增量增加到第一行。我错过了一些简单的东西吗 代码 。。。我得到这个输出72次,因为在工作表中有72行 隔离回路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循环: 使用调试器并逐行执行代码将帮助您
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());