我尝试遵循此规则: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;
预先感谢
答案 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文档