2016-09-05 6 views
1

Мне нужно установить условное форматирование на основе дат значений с использованием Epplus (последняя версия 4.1.0).Как добавить условное форматирование на дату меньше, чем с помощью Epplus

Я установил свой диапазон

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 «сегодня» форматированный как дата это работает, но я предпочел бы решение не связанных с фиктивными клеток, потому что позже мне потребуется несколько критериев.

Можете ли вы предложить мне правильный способ решить эту проблему?

ответ

1

Просто надо сделать преобразование дата себя так EPPlus оленья кожа имеют встроенную функцию:

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