Как указать дату цвета фона с помощью axlsx?

Я создаю excel с axslx. Один ряд должен быть окрашен. Но если я это сделаю, я потеряю формат даты для своих дат.

Минимальный пример с некоторыми попытками:

require 'axlsx' Axlsx::Package.new do |p| p.workbook.add_worksheet(:name => "test") do |ws| style1 = ws.styles.add_style(:bg_color => "EF0920", :fg_color => "FFFFFF") ws.add_row [ Date.today, "No style defined --ok"] ws.add_row [ Date.today, "Style with colors --The date is no date any longer"], :style => style1 ws.add_row [ Date.today, "Style with colors, except date -- ok, but not colored"], :style => [nil,style1] ws.add_row [ Date.today, "Style with colors and types --The date is no date any longer"], :style => style1, :types => [:date,:string] ws.add_row [ Date.today, "Style with colors and types --The date is no date any longer"], :style => [style1,style1], :types => [:date,:string] ws.add_row [ Date.today, "No Style -- ok, but not colored"], :types => [:date,:string] end p.serialize('test.xlsx') end 

Результат:

введите описание изображения здесь

Как я могу покрасить ячейку даты без потери данных?

Вам также нужно будет указать формат номера, чтобы ваш стиль выглядел бы так:

 style1 = ws.styles.add_style(:bg_color => "EF0920", :fg_color => "FFFFFF", :format_code => "dd.mm.yyyy") 

При добавлении стиля он будет перезаписывать стиль по умолчанию и все форматирование. например

 ws.add_row [ Date.today, "Style with colors --The date is no date any longer"], :style => [style1,nil] 

Это приведет к красной дате, отформатированной, как и другие строки, и столбцу «Без заполнения».

Этот стиль будет только для даты, поэтому, если вы хотите весь столбец, я бы рекомендовал что-то вроде

 red_style_h = {:bg_color => "EF0920", :fg_color => "FFFFFF"} red_date_h = red_style_h.merge(:format_code => "dd.mm.yyyy") red_style = ws.styles.add_style(red_style_h) red_date_style = ws.styles.add_style(red_date_h) 

Затем создайте свои строки как

 ws.add_row [ Date.today, "Style with colors --The date is no date any longer"], :style => [red_date_style,red_style] 

Это приведет к красной строке (столбцы A и B) с датой, отформатированной так же, как и другие строки.

Источник Git Hub

Существуют также предопределенные стили, доступные через numFmts и глобальные константы NUM_FMT_PERCENTAGE , NUM_FMT_YYYYMMDD , NUM_FMT_YYYYMMDDHHMMSS и т. Д.

При определении многих разных форматов я считаю, что проще всего использовать YML-файл, а затем анализировать его для определения стилей, например

 red_style:&red bg_color: "EF0920" fg_color: "FFFFFF" red_date: <<: *red format_code: dd.mm.yyyy 

Тогда что-то вроде

 class MyStylizedSheet < ::Axlsx::Workbook STYLES_FILE = YAML.load(File.read(YOUR_YML_FILE)).deep_symbolize_keys PREDEFINED_STYLES = {} def initialize(options={}) super initialize_with_styles end private def initialize_with_styles STYLES_FILE.each do |k,v| PREDEFINED_STYLES[k] = @styles.add_style(v) end end end 

Затем вы можете инициировать свою PREDEFINED_STYLES из своего пользовательского класса и стилей ссылок через константу PREDEFINED_STYLES .

  • Использование извлеченных файлов xml для генерации xlsx-файла в рельсах
  • Как читать цвет фона ячейки через (рубиновый) скрипт из Microsoft Excel на Mac Osx?
  • Как я могу принуждать длинные числа в CSV-файлах к строкам, чтобы Excel не конвертировал их в E-запись?
  • Инструкция Ruby if с крупноформатной таблицей не работает правильно?
  • Как изменить цвет шрифта с помощью axlsx для ячейки, содержащей номер?
  • Не удалось экспортировать данные на лист Excel
  • Копирование X-го листа из книг N Excel в новую книгу - какой язык использовать?
  • axlsx_rails gem: Не выводить никаких нечисловых символов
  • где я могу найти хороший синтаксический анализатор рубина, который также имел хорошую документацию?
  • Как заставить Excel XML хранить ведущие нули в строках?
  • Как сохранить разрывы строк при экспорте адресов из Ruby в Excel XML?
  • Interesting Posts

    Подсчитайте количество заказов в таблице заказов

    Ввод параметров в Python

    как перенести данные из одного файла csv / excel в несколько таблиц оракула

    Сопоставьте две ячейки, чтобы поместить значение в Excel

    Excel импортирует данные из служб Analysis Services – дата встречается как текст

    VBA – копирование информации в новую книгу

    Получить UsedRange для одного столбца только в Excel Interop

    получить переменное число начального нуля от excel до rails

    Формула HEX2OCT в MS Excel возвращает неверный результат

    Перемешать и расстегивать лист с помощью ключа

    Решено: ошибка времени выполнения «438» Объект не поддерживает это свойство или метод – работал ранее

    Как добавить несколько строк из одной таблицы Excel (ListObject) в другую?

    Просмотр изображений в Excel, которые сохраняются на общем диске?

    Проверка электронной почты Excel для позиции. после символа @

    Вкладка ColorIndex сброс excel vba

    Давайте будем гением компьютера.