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