设置HSSFCellStyle的前景色总是黑色的

我正在使用POI来创build一个Java电子表格。 我有以下用于创build标题行的代码:

HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("Report"); // some more code HSSFRow row = sheet.createRow(0); HSSFCell cell = row.createCell(cellNumber); HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index); cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); HSSFFont font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.WHITE.index); cellStyle.setFont(font); cell.setCellStyle(cellStyle); 

我遇到的问题是,无论select什么颜色,在单元格上设置填充背景颜色总是显示为黑色。 我究竟做错了什么? 如果我不使用“setFillPattern”行,则根本不显示任何颜色。

我得到这个工作。 我必须设置前景色才能使背景色起作用(??)。

所以我改变了:

 cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index); 

至:

 cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); 

它的工作!

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

 cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); 

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

 style.setFillPattern(FillPatternType.THICK_BACKWARD_DIAG); 

要么

 style.setFillPattern(FillPatternType.THIN_BACKWARD_DIAG); 

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

CellStyle.SOLID_FOREGROUND在版本3.15以上不推荐使用。 改用FillPatternType.SOLID_FOREGROUND