如何在空白单元格上设置颜色

时间:2018-11-16 07:36:48

标签: java apache-poi

我需要为整行设置颜色,但是问题是我的某些单元格是空白单元格,不包含任何数据,

        XSSFRow row2 = sheet.getRow(1);

        CellStyle style = wb.createCellStyle();
        style.setFillForegroundColor(IndexedColors.GREEN.getIndex());
        style.setFillPattern(CellStyle.SOLID_FOREGROUND);

        for (int i = 0; i < row1.getLastCellNum() + 1; i++) {// For each cell in the row
            row2.getCell(i).setCellStyle(style);// Set the style
        }

我遇到这样的错误:

java.lang.NullPointerException

我认为此错误来自空白单元格,因为当我尝试在包含数据的单元格上设置颜色时,例如:

row2.getCell(4).setCellStyle(style);

相应的单元格是相应的颜色。

我们真的可以在空白单元格上放置颜色吗?

1 个答案:

答案 0 :(得分:1)

您应该尝试以下方法。 在这里,我给出了逻辑,因为我没有确切的依赖性,请按照以下方法进行操作。首先检查row2.getCell是否不为null,然后设置,否则创建单元格,然后设置。

 XSSFRow row2 = sheet.getRow(1);

            CellStyle style = wb.createCellStyle();
            style.setFillForegroundColor(IndexedColors.GREEN.getIndex());
            style.setFillPattern(CellStyle.SOLID_FOREGROUND);

            for (int i = 0; i < row2.getLastCellNum(); i++) {// For each cell in the row
                if( row2.getCell(i)!=null){
                row2.getCell(i).setCellStyle(style);// Set the style
                }else{
                    Cell cell=row2.createCell(i);
                    cell.setCellStyle(style);
                }
            }