Использование Epplus для чтения электронных таблиц и определения всех стилей ячейки, включая условный формат - PullRequest
3 голосов
/ 21 мая 2019

Я использую Epplus (C # .net) для чтения значений и стиля ячеек (фон и цвет шрифта) в электронной таблице, которая защищена и заблокирована.

Style.Fill.BackgroundColor.Rgb; Style.Fill.BackgroundColor.Theme и Style.Font.Color.Rgb; Style.Font.Color работать правильно в большинстве клеток. Я столкнулся с проблемой с ячейками, которые используют условный формат «Форматировать только уникальные или повторяющиеся значения». Цвет фона и шрифта возвращаются из Epplus как ноль.

Вот код для получения цвета фона / шрифта из конкретной ячейки

    private ExcelStyleLoad GetStyleInfo(ExcelRange currentCell)
    {
        ExcelStyleLoad retval = new ExcelStyleLoad();
        //background
        retval.BackgroundColor = currentCell.Style.Fill.BackgroundColor.Rgb;
        retval.BackgroundTheme = currentCell.Style.Fill.BackgroundColor.Theme;

        //font
        retval.FontColor = currentCell.Style.Font.Color.Rgb;
        retval.FontTheme = currentCell.Style.Font.Color.Theme;

        //other
        retval.isBold = currentCell.Style.Font.Bold;
        retval.isUnderline = currentCell.Style.Font.UnderLine;
        retval.isItalics = currentCell.Style.Font.Italic;

        retval.FullAddress = currentCell.FullAddress;
        return retval;
    }

Я также пытался использовать currentCell.ConditionalFormatting.AddDuplicateValues ​​(), чтобы определить цвет фона / шрифта, но безуспешно.

Какие-либо предложения, как я могу получить цвет фона / шрифта ячеек, которые используют ConditionalFormatting?

1 Ответ

0 голосов
/ 22 мая 2019

В моем понимании ячейки с условным форматированием не имеют (обязательно) фонового цвета, они просто имеют правило условного форматирования. Цвет фона выводится из значения и правила при отображении листа.

Это соответствует вашим наблюдениям.

Так что вам придется искать условное форматирование в ячейках и самостоятельно вычислять значения цвета при чтении форматирования. Это небольшая надежда в вашем случае, когда лист защищен и заблокирован.

В любом случае, вы должны иметь возможность определять уникальные / повторяющиеся ячейки даже в защищенных и заблокированных листах. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...