如何使用POI设置Blank excel单元格

时间:2015-07-01 07:25:55

标签: java excel apache-poi

我有一个条件,我需要检查字符串中的分隔符。如果找到,那么我需要将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.CELL_TYPE_BLANK即使我尝试使用cell.setCellValue(“”)也没有设置空白单元格,但是它再次没有设置。如果我们想要设置空白单元格,它是否会尝试跳过该单元格?如果没有,那么任何人都可以告诉我如何做到这一点。

感谢您的帮助!!

3 个答案:

答案 0 :(得分:10)

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

cell.setCellType(Cell.CELL_TYPE_BLANK);

应该做的就是你所需要的。

答案 1 :(得分: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++;
  }
}

答案 2 :(得分:0)

我来晚了,但是

不要考虑将单元格设置为空。 考虑将单元格留空。 创建单元格时,默认情况下该单元格为空,直到您设置其值为止。

尝试这样的事情:

            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++;
            }
        }