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

        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将单元格样式应用于所需的单元格。

09-30 23:35