我的数据不是在excel中逐行填充,而是在Excel中是逐个单元填充。

请检查我的期望。

        Column 0   Column 1   Column 2
Row 0               APP1       APP2
Row 1     Computer
Row 2     Mobile
Row 3     Tablet


我当前的代码在下面提供结果

        Column 0   Column 1   Column 2
Row 0               APP1       APP2
Row 1     Computer
Row 2
Row 3


请检查我当前的代码

Iterator<String> tempIterator2= devkeys.iterator();

Integer cellnumd = 0;
Integer rownum2 = 1;
XSSFRow row2 = sheet.getRow(rownum2);

if (row2 == null) {
  sheet.createRow(rownum2);
  continue;
}
Cell cell2 = row2.getCell(cellnumd);
while (tempIterator2.hasNext()) {
  String tempdev = (String) tempIterator2.next();
  if (( cell2 != null) || ( cell2 == null)){
    cell2 = row2.createCell(cellnumd);
    cell2.setCellValue(tempdev);
    rownum2++;
  }
}

最佳答案

您只创建了一行。
以后,您遍历tempIterator2并增加rownum,但是忽略增加的值。

最重要的是:
if (( cell2 != null) || ( cell2 == null))令人困惑。
等于if (true)-cell2可以为null或不为null。没有其他选择。

您还可以考虑for循环:

for (String tempdev : devkeys)


显式使用迭代器。
输出将是相同的(for循环使用迭代器),但是这被认为更具可读性。

08-24 13:04