如何在小于 Epplus 的日期添加条件格式

How to add conditional formatting on date less than with Epplus

我需要使用 Epplus(最新版本 4.1.0)根据 日期 值设置条件格式。

我设置我的范围

var rng= new ExcelAddress(<startingRow>, <startingcolumn>,<endingRow>, <endingColumn>);

范围内的单元格被格式化为日期。我需要对日期 小于或等于今天

应用条件格式

我可以

var format1 = ws.ConditionalFormatting.AddToday(rng);
format1.Style.Fill.BackgroundColor.Color = Color.LightGreen;

以及与 AddLastWeek 和 AddLast7Days 类似的格式。

但这不是一个完整的解决方案,其他预定义的 Excel 日期条件也无济于事。

我需要

var format1 = ws.ConditionalFormatting.AddLessThan(rng).Formula;
format1.Formula = ???

我试图在公式中放入几个包含格式化日期的字符串,但它们被忽略了(没有错误,也没有格式化)。 在 Excel 中,我可以在管理条件格式表单中看到它们。 我发现如果我这样做

format1.Formula = "A1"

并且单元格 A1 包含 "today" 格式化为有效日期,但我更喜欢不涉及虚拟单元格的解决方案,因为稍后我将需要更多标准。

你能建议我解决这个问题的正确方法吗?

由于 EPPlus 没有内置函数,因此必须自己进行日期转换:

var ltecf = rng.ConditionalFormatting.AddLessThanOrEqual();
ltecf.Formula = DateTime.Now.Date.ToOADate().ToString(CultureInfo.InvariantCulture);
ltecf.Style.Fill.BackgroundColor.Color = Color.LightGreen;