我必须打开一个现有的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 回答
我也面临着类似的问题,并找到了为Gagravarr提到的工作簿创建新风格的解决方案 . 只需更改您的代码,如下所示 .