Apache POI Excel行颜色只有黑色,不会更改

我正在尝试使excel文件背景一行白色和其他水色。 但是无论我做什么,颜色总是变成黑色。

private void writeTable(Table table, Row row, CellStyle style){ if(row.getRowNum() % 2 == 0) { style.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); style.setFillPattern(CellStyle.SOLID_FOREGROUND); } style.setWrapText(true); Cell cell = row.createCell(0); cell.setCellValue(table.index); cell.setCellStyle(style); //And it continues with other cells } 

它不会改变我所做的任何事情,即使我尝试GREY_25_PERCENT它是完全黑色的。 这是我的excel文件的图片

如果您正在设置前景色,请使用

 cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); 

如果您正在设置背景色,请使用

 style.setFillPattern(FillPatternType.THICK_BACKWARD_DIAG); 

要么

 style.setFillPattern(FillPatternType.THIN_BACKWARD_DIAG); 

如果在背景填充图案之前设置了前景填充图案,前景和背景颜色似乎是“叠加”(红色+蓝色=紫色),而不是相反。 还有其他几种填充图案可以select。 请注意,如果不更改默认的填充图案,则不会应用颜色。

这似乎违反直觉,但使用

 style.setFillPattern(CellStyle.SOLID_FOREGROUND); 

与…结合

 style.setFillForegroundColor(IndexedColors.AQUA.getIndex()); 

设置单元格的背景颜色。

单元格背景本身可能还包含两层:前景和背景。