我正在从一个单元格复制一个单元格样式,以将其用于其他许多行:
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而不是将其设置为White。这有可能吗?
谢谢你的建议!
最佳答案
当在Apache POI中考虑“背景色”和“前景色”时,这有点令人困惑,因为可以使用两种样式将两种颜色应用于单元格背景。在这种情况下,前景色已指定为灰色,填充图案已指定为“纯色前景”。其他填充图案使用两种颜色。
在这种情况下,如果要避免将背景色设置为白色,但是要删除背景色,则需要使用setFillPattern
将填充图案设置为“无填充”,并使用the CellStyle
constant NO_FILL
指定不应应用任何模式。然后,将忽略任何前景色和背景色。
styleHdr.setFillPattern(CellStyle.NO_FILL);
还请确保使用
setCellStyle
将单元格样式应用于所需的单元格。