如何在日期上添加条件格式少于Epplus

时间:2016-09-05 10:04:51

标签: c# conditional-formatting epplus date-range

我需要使用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包含&#34;今天&#34;格式化为日期工作,但我更喜欢不涉及虚拟单元格的解决方案,因为稍后我将需要更多标准。

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

1 个答案:

答案 0 :(得分:1)

由于EPPlus没有内置功能,所以必须自己进行日期转换:

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