EPPlus条件格式

时间:2018-10-10 10:18:39

标签: c# .net epplus

我尝试遵循此规则:Conditional Formatting by Expression using EPPlus

但是对于我来说,excel文件已损坏,并提供了删除规则后恢复的选项。

我想实现这一目标(简化): screenshot

这是我的代码(针对A列):

ExcelWorksheet ew = ep.Workbook.Worksheets.Add("Sheet1");

var cells = new ExcelAddress("A2:A5");
string formula = "ISNUMBER(SEARCH($A$1;C2))";
var condition = ew.ConditionalFormatting.AddExpression(cells);
condition.Formula = formula;
condition.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
condition.Style.Fill.BackgroundColor.Color = System.Drawing.Color.Yellow;

预先感谢

2 个答案:

答案 0 :(得分:2)

对于初学者来说,公式中缺少=。而且我不知道SEARCH($A$1;C2)的目的是什么,但是下面的代码有效。

//the range of cells to be searched
var cells = new ExcelAddress("A1:Z10");

//the excel formula, note that it uses the top left cell of the range
//so if the range was C5:d10, it would be =ISNUMBER(C5)
var formula = "=ISNUMBER(A1)";

var condition = worksheet.ConditionalFormatting.AddExpression(cells);
condition.Formula = formula;
condition.Style.Fill.PatternType = ExcelFillStyle.Solid;
condition.Style.Fill.BackgroundColor.Color = Color.Yellow;

答案 1 :(得分:0)

出现错误错误的原因是公式中的半冒号。 在此公式中,分号不是有效的运算符。

针对VDWWD-我认为等号不成问题,如果在公式中使用等号,则会出现损坏错误。

摘自EPPlus文档

  • 请勿使用本地化的函数名称。仅支持英文名称(例如SUM,IF,VLOOKUP等)。
  • 请勿使用分号作为函数参数之间的分隔符。仅支持逗号。
  • 请勿在公式中添加前导=符号。 “ = SUM(A1:A2)”错误,“ SUM(A1:A2)”正确。

Epplus Formula Calculation