POI删除单元格的背景颜色

我从一个单元格复制一个单元格样式,将其用于许多其他行:

HSSFCellStyle styleHdr = workbook.createCellStyle(); if ( styleHeader != null) styleHdr.cloneStyleFrom(styleHeader); String regexNumbers = "(^[0-9]+[.]{0,1}[0-9]*$)"; String regNatZahl = "(^[0-9]+$)"; CellStyle numericStyle = workbook.createCellStyle(); numericStyle.setDataFormat((short) 0); HSSFFont font= workbook.createFont(); font.setBoldweight((short) 0); styleHdr.setBorderLeft(CellStyle.BORDER_NONE); styleHdr.setBorderRight(CellStyle.BORDER_NONE); styleHdr.setBorderBottom(CellStyle.BORDER_THIN); styleHdr.setBorderTop(CellStyle.BORDER_NONE); styleHdr.setFont(font); styleHdr.setFillBackgroundColor(new HSSFColor.WHITE().getIndex()); 

styleHeader的背景颜色为灰色,但是

 styleHdr.setFillBackgroundColor(new HSSFColor.WHITE().getIndex()); 

没有效果。 其实我想删除backgroundColor,而不是将其设置为白色。 这也是可能的吗?

Thx为您的build议!

在考虑Apache POI中的“背景颜色”和“前景色”时有点混淆,因为有两种颜色可以应用到单元格背景中,并使用一种模式。 在这种情况下,前景色被指定为灰色,填充图案被指定为“固体前景”。 其他填充图案使用两种颜色。

在这种情况下,如果要避免将背景颜色设置为白色,但是您希望删除背景颜色,则需要使用CellStyle常量NO_FILL将填充图案设置为“不填充” NO_FILL以指定应该没有应用模式。 然后任何前景和背景颜色将被忽略。

 styleHdr.setFillPattern(CellStyle.NO_FILL); 

还要确保使用setCellStyle将单元格样式应用到所需的单元格。