使用 C# EPPlus 根据 Excel 中的单元格文本更改单元格背景颜色



我试图根据其文本内容来更改单元格的背景颜色。例如:对于文本="正在进行的",它应该是黄色的,对于文本="已完成"应该是绿色的。没有任何线索使用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;

相关内容

  • 没有找到相关文章

最新更新