首页 文章

Apache POI,更改背景颜色在错误的单元格中

提问于
浏览
0

我必须打开一个现有的Excel并设置一些值或更改该单元格的背景/前景色 .

这个excel是关于公司的工作日,所以我有一个Excel已经风格 . 我必须改变一些细胞的前景,因为你可以想象,在某些日子里我们不起作用 .

因此,对于每天(对应于一个单元格),如果它没有“启用”,它必须变为黄色 .

我的代码是:

for(int i=0;i<listDays.size();i++) {

            int indiceColonna = 6+i;

            /* Setto la cella GIALLA relativa alla desc corta giorno */
            if(!listDays.get(i).isEnabled()) {
                CellStyle cellaGialla = foglio.getRow(5).getCell(indiceColonna).getCellStyle();
                cellaGialla.setFillForegroundColor(IndexedColors.LIGHT_YELLOW.getIndex());
                cellaGialla.setFillPattern(FillPatternType.SOLID_FOREGROUND);
                foglio.getRow(5).getCell(indiceColonna).setCellStyle(cellaGialla);

            /* Colonne gialle : da G8 a G18 - a scendere */
                for (int y = 0; y < 11; y++) {
                    Cell cella = foglio.getRow(7 + y).getCell(6 + i);
                    CellStyle cella2Gialla = cella.getCellStyle();
                    cella2Gialla.setFillForegroundColor(IndexedColors.LIGHT_YELLOW.getIndex());
                    cella2Gialla.setFillPattern(FillPatternType.SOLID_FOREGROUND);
                    cella.setCellStyle(cella2Gialla);
                }
            }

        }

我想获取单元格的实际CellStyle并仅更改前景色 . 此代码部分工作,因为它也在其他列设置前景色:wrong columns

我怎样才能避免这个错误?我正在使用Apache POI 3.16,但我尝试使用一些旧版本 .

谢谢!

1 回答

  • 1

    我也面临着类似的问题,并找到了为Gagravarr提到的工作簿创建新风格的解决方案 . 只需更改您的代码,如下所示 .

    CellStyle cella2Gialla = WorkbookObject.createCellStyle();
    

相关问题