Apache POI-基于公式的条件格式(XSSFFontFormatting)的主题颜色

问题描述 投票:0回答:1

我正在尝试使用poi api基于公式创建条件格式。通过读取另一个(模板/参考)单元格来设置字体颜色。问题是当前的api不支持基于公式的条件的基于主题的颜色。我想念什么吗?有什么办法可以使这项工作吗?

    public void test(XSSFCellStyle style, String complexFormula){
        ....
        XSSFConditionalFormattingRule rule = (XSSFConditionalFormattingRule )
                      sheetCF.createConditionalFormattingRule(complexFormula);
        XSSFConditionalFormattingRule (rule,style);
    }

    protected void createConditionalFormatingRules(XSSFConditionalFormattingRule rule, XSSFCellStyle style) {

        XSSFFontFormatting fontFmt = (XSSFFontFormatting) rule.createFontFormatting();
        XSSFFont font = style.getFont();

        fontFmt.setFontColorIndex(font.getXSSFColor());  // BROKEN -- this doe not work for theme color

        fontFmt.setFontHeight(font.getFontHeight());
        fontFmt.setUnderlineType(font.getUnderline());
        fontFmt.setFontStyle(font.getItalic(), font.getBold());
        fontFmt.setEscapementType(FontFormatting.SS_NONE);
    }

以上,fontFmt.setFontColorIndex(font.getXSSFColor())]对主题颜色无效。它适用于标准颜色。

poi-ooxml-4.1.0

感谢您调查我的问题!

我正在尝试使用poi api基于公式创建条件格式。通过读取另一个(模板/参考)单元格来设置字体颜色。问题是当前的api不支持基于主题的...

java apache-poi openxml xssf
1个回答
0
投票

XSSFFontFormatting.setFontColor(Color)中存在错误。它仅设置RGB值,而不设置色调值。

© www.soinside.com 2019 - 2024. All rights reserved.