如何使用POI设置Excel中的空单元格

6

我有一个需求,在字符串中检查分隔符。如果找到,则需要将Excel单元格设置为空白。我有这段代码:

                row = sheet.createRow(newRow);
            for(String fieldValues: fieldList)
            {
                if(fieldValues.contains(","))
                {
                    XSSFCell cell = row.createCell(cellNo);
                    cell.setCellValue(Cell.CELL_TYPE_BLANK);
                    cellNo++;
                }
                else
                {
                    XSSFCell cell = row.createCell(cellNo);
                    cell.setCellValue(fieldValues);
                    cellNo++;
                }
            }

即使我尝试使用cell.setCellValue(""),Cell.CELL_TYPE_BLANK也无法设置空白单元格。它是否尝试跳过该单元格,如果我们想要设置空白单元格?如果不是,请问有人可以告诉我如何做到这一点。

感谢您的帮助!


那个单元格里已经有东西了吗? - Gagravarr
不是的,如果你看到我在for循环之前创建了新行。 - user2810293
你确定那一行里没有已经存在的内容吗?另外,“is not setting up the Blank Cell”是什么意思? - Gagravarr
抱歉造成困惑。我想将单元格中的值设置为空白。 - user2810293
还有什么没有运作?你是否收到了异常?或者单元格中有其他值?Excel崩溃了吗? - Gagravarr
3个回答

13

根据文档和POI实现,我希望

cell.setCellType(Cell.CELL_TYPE_BLANK);

应该就这样搞定了,这就是你所需要的。


3

虽然我有些晚了,但是,请不要考虑将单元格设置为空。 考虑到让单元格保持为空白。 当您创建一个单元格时,默认情况下它是空白的,直到您设置单元格的值。

可以尝试类似以下的做法:

            row = sheet.createRow(newRow);
        for(String fieldValues: fieldList)
        {
            if(fieldValues.contains(","))
            {
                XSSFCell cell = row.createCell(cellNo); //it's already blank here
                cellNo++;
            }
            else
            {
                XSSFCell cell = row.createCell(cellNo);
                cell.setCellValue(fieldValues);
                cellNo++;
            }
        }

0

您正在使用setCellValue。请改用此方法:setCellStyle

row = sheet.createRow(newRow);
for(String fieldValues: fieldList)
{
  if(fieldValues.contains(","))
  {
    XSSFCell cell = row.createCell(cellNo);
    cell.setCellStyle(Cell.CELL_TYPE_BLANK);
    cellNo++;
  }
  else
  {
    XSSFCell cell = row.createCell(cellNo);
    cell.setCellValue(fieldValues);
    cellNo++;
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接