我试图根据其文本内容来更改单元格的背景颜色。例如:对于文本="正在进行的",它应该是黄色的,对于文本="已完成"应该是绿色的。没有任何线索使用C#。
进行自动化引用下面的链接,但没有运气
https://stackoverflow.com/questions/394844426/set-conditional-background-coloror-color-color-cell-cell-cell of-cell-cell-in-text-using-epplus-epplus-epplus in-c-nethttps://stackoverflow.com/questions/52737955/epplus-conditional-formatting
ExcelAddress _formatRangeAddress = new ExcelAddress("C2:C5");
var conditionalFormattingRule01 = workSheet.ConditionalFormatting.AddExpression(_formatRangeAddress);
conditionalFormattingRule01.Formula = "($C3=In Progress)";
conditionalFormattingRule01.Style.Fill.PatternType = ExcelFillStyle.Solid;
conditionalFormattingRule01.Style.Fill.BackgroundColor.Color = Color.Yellow;
颜色应更改为黄色,以便在单元格中的进展文本中
以下是几种实现它的方法。
使用公式表达式,您需要使用格式C2="In Progress"
,其中C2
是适用条件格式的范围内的顶级单元格 - 它仍将以正确的方式适用于其他范围的其他单元。
var formatExpressionInProgress = worksheet.ConditionalFormatting.AddExpression(new ExcelAddress("C2:C5"));
formatExpressionInProgress.Formula = "C2="In Progress"";
formatExpressionInProgress.Style.Fill.PatternType = ExcelFillStyle.Solid;
formatExpressionInProgress.Style.Fill.BackgroundColor.Color = Color.Yellow;
更直观地,您可以使用.AddEqual
代替AddExpression
而不是使用均等的类型表达式,然后在公式中只有"Completed"
以匹配条件应适用的地方。
var formatExpressionCompleted = worksheet.ConditionalFormatting.AddEqual(new ExcelAddress("C2:C5"));
formatExpressionCompleted.Formula = ""Completed"";
formatExpressionCompleted.Style.Fill.PatternType = ExcelFillStyle.Solid;
formatExpressionCompleted.Style.Fill.BackgroundColor.Color = Color.Green;