使用Epplus读取电子表格并确定所有单元格的样式,包括条件格式

时间:2019-05-20 23:46:21

标签: conditional-formatting epplus

我正在使用Epplus(C#.net)读取受保护的电子表格中的值和单元格样式(背景和字体颜色)。

Style.Fill.BackgroundColor.Rgb; Style.Fill.BackgroundColor.Theme和Style.Font.Color.Rgb;样式字体颜色 在大多数单元格中都能正常工作。我正在使用条件格式“仅设置唯一或重复值的格式”的单元格遇到问题。 Epplus返回的背景和字体颜色为空。

这是从特定单元格获取背景/字体颜色的代码

    private ExcelStyleLoad GetStyleInfo(ExcelRange currentCell)
    {
        ExcelStyleLoad retval = new ExcelStyleLoad();
        //background
        retval.BackgroundColor = currentCell.Style.Fill.BackgroundColor.Rgb;
        retval.BackgroundTheme = currentCell.Style.Fill.BackgroundColor.Theme;

        //font
        retval.FontColor = currentCell.Style.Font.Color.Rgb;
        retval.FontTheme = currentCell.Style.Font.Color.Theme;

        //other
        retval.isBold = currentCell.Style.Font.Bold;
        retval.isUnderline = currentCell.Style.Font.UnderLine;
        retval.isItalics = currentCell.Style.Font.Italic;

        retval.FullAddress = currentCell.FullAddress;
        return retval;
    }

我也尝试使用currentCell.ConditionalFormatting.AddDuplicateValues()确定背景/字体颜色,但没有成功。

有人建议如何获取使用ConditionalFormatting的单元格的背景/字体颜色吗?

1 个答案:

答案 0 :(得分:0)

在我的理解中,具有条件格式的单元格没有(必须)具有背景色,它们仅具有条件格式规则。从显示工作表时的值和规则推断背景色。

这符合您的观察。

因此,您必须在单元格中查找条件格式,并在读取格式时自行计算颜色值。在保护和锁定工作表的情况下,这没什么希望。

无论如何,即使在受保护和锁定的工作表中,您也应该能够确定唯一/重复的单元格。祝你好运!