ClosedXML при работе с условными форматами с использованием формул - формула неверна

Я использую условное форматирование с ClosedXML, и у меня есть 2 проблемы с ним. Во-первых, если я устанавливаю условие на основе значения, например, так:

> RangeToAdd.AddConditionalFormat().WhenLessThan(0).Fill.SetBackgroundColor(XLColor.Red).Font.SetFontColor(XLColor.Red);

Однако, когда мне нужно установить относительную ячейку, она не работает. Вот что я попробовал:

RangeToAdd.AddConditionalFormat().WhenLessThan("\"=RC[-19]\"").Fill.SetBackgroundColor(XLColor.Yellow);
RangeToAdd.AddConditionalFormat().WhenGreaterThan("\"=RC[-19]+RC[-18]+RC[-17]\"").Fill.SetBackgroundColor(XLColor.BabyBlue);

и это не работает. Это добавление ="=, а затем формула, которая не верна. Я следовал тому, что было сказано в документации здесь, и я попробовал это, не избегая также кавычек.

Другая проблема небольшая, но я не могу понять. Как мне установить условие, чтобы остановить, когда истина.

1 ответ

Решение

Вы добавляете слишком много цитат: согласно документации это просто

WhenLessThan("=RC[-19]") // But Excel can't read it unfortunately 

Возможная работа вокруг

WhenLessThan("=" + RC(RangeToAdd,0,-19))

и так же

WhenGreaterThan("=" + RC(RangeToAdd,0,-19) + "+" + RC(RangeToAdd,0,-18) + "+" + RC(RangeToAdd,0,-17))

используя помощника

    static string RC(IXLRange range, int r, int c)
    {
        return range.FirstCell().CellBelow(r).CellRight(c).Address.ToString(XLReferenceStyle.A1);
    }
Другие вопросы по тегам