Используйте разные цвета для разных значений в выпадающем списке для файлов Excel - PullRequest
3 голосов
/ 27 марта 2012

Мне нужно создать лист Excel со статусом поля. Это раскрывающийся список со значениями «Высокий», «Средний» и «Низкий». Мне нужно показать разные цвета, когда они выбирают разные значения. Я реализовал раскрывающийся список, используя writeexcel gem. Вот мой код:

worksheet.data_validation(count, 5,
          {
            :validate        => 'list',
            :source          => ['High', 'Medium', 'Low'],
          })

Раскрывающийся список работает нормально. Но я хочу указать цвет для каждого выбора. Я могу покрасить ячейку в зависимости от выбора раскрывающегося списка, но мне нужны разные цвета для разных вариантов выбора раскрывающегося списка. Любой другой драгоценный камень, имеющий эту реализацию, тоже подойдет.

1 Ответ

3 голосов
/ 27 марта 2012

Gem write_xlsx - это обновленная версия writeexcel , которая поддерживает более новый формат Excel 2007+ XLSX. Это от того же автора и имеет тот же интерфейс, но имеет дополнительные функции.

Одной из этих новых функций является Условное форматирование .

Вы можете использовать его для применения условных форматов к той же ячейке, что и проверка раскрывающегося списка, например:

worksheet.conditional_formatting(count, 5,
    {
        :type     => 'cell',
        :format   => format1,
        :criteria => '=',
        :value    => '"High"'
    }
)

worksheet.conditional_formatting(count, 5,
    {
        :type     => 'cell',
        :format   => format2,
        :criteria => '=',
        :value    => '"Medium"'
    }
)
...

Вам потребуется определить форматы, используя стандартный интерфейс.

Обратите внимание, что write_xlsx - это порт модуля Perl Excel :: Writer :: XLSX . Этот модуль содержит дополнительную документацию по использованию условных форматов . Вы сможете легко конвертировать примеры в Ruby.

См. Также мой ответ на ваш предыдущий вопрос.

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