我正在使用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的单元格的背景/字体颜色吗?
答案 0 :(得分:0)
在我的理解中,具有条件格式的单元格没有(必须)具有背景色,它们仅具有条件格式规则。从显示工作表时的值和规则推断背景色。
这符合您的观察。
因此,您必须在单元格中查找条件格式,并在读取格式时自行计算颜色值。在保护和锁定工作表的情况下,这没什么希望。
无论如何,即使在受保护和锁定的工作表中,您也应该能够确定唯一/重复的单元格。祝你好运!