如何删除迭代器循环,并允许cellDateType工作在xlsx java?

嗨,所有的专家那里,目前我有一些关于迭代器循环的问题。 我需要删除它,以便我的数据出现在我的xlsx excel工作表上,但我不知道如何去除它,以便我的代码没有错误。 我怀疑这个错误可能在迭代器循环上。 现在,这是我的代码和它现在的样子的图像链接。

现在看起来如何

excel表单中的数据并不是假设中间有一个空格,但显然是有的。 第一列中没有任何数据,因为我没有任何数据被input到网站中。 所以第一列可以是空白的。

int r = 3; for (Iterator iter = Cells.iterator();iter.hasNext();) { Object[] _o = (Object[]) iter.next(); currentRow = s.createRow(r); for(int colNum = 0; colNum < _col_cnt; colNum++){ XSSFCell currentCell =currentRow.createCell(colNum); if (CellDataType[c].equals("STRING") || CellDataType[c].equals("VARCHAR")) { String _l = (String) _o[colNum]; if (_l != null) { currentCell.setCellValue(_l); System.out.println("Data: " + _l); } } 

硬编码(testing):

  int r = 3; for (Iterator iter = Cells.iterator();iter.hasNext();) { Object[] _o = (Object[]) iter.next(); currentRow = s.createRow(r); for(int colNum = 0; colNum < _col_cnt; colNum++){ XSSFCell currentCell =currentRow.createCell(colNum); currentCell.setCellValue("Hello"); 

硬编码

您的问题不在您在此处显示的代码中,而是在您之前的问题中显示的代码中。 两个build议的话。

  • 如果你正确地使用了缩进,并把它们应该是的花括号放在一起,你几乎可以立即看到错误。
  • 如果你用debugging器遍历你的代码,看看r的值,你会立即发现问题。

你的行r++; 在内部循环内部。 这意味着对于外部循环的每次迭代它会增加3次。 你需要移动r++; 向下一行,这样它在内部循环之外,但在外部循环之内。 这样,每行只会增加一次,这就是你所需要的。