Можно ли изменить существующий объект стиля при использовании axlsx в Ruby on Rails? - PullRequest
0 голосов
/ 28 декабря 2018

Я использую axlsx gem для создания листов Excel.

У меня есть несколько стилей в Excel.Один пример показан ниже

style1 = wb.styles.add_style(:font_name => "Arial", :sz => 10, :i => true, :fg_color => "A6A6A6")

Теперь мне нужно написать функцию, которая будет принимать этот стиль (и значение валюты) в качестве параметра.Эта функция должна просто изменить fg_color (цвет шрифта) на красный, если значение валюты является отрицательным (все остальные стили, такие как цвет фона, размер шрифта, курсив и т. Д. Должны остаться прежними) и вернуть измененный стиль.

Можно ли добиться того же?

def get_currency_style(style, currency_value)
  if currency_value < 0
    new_style = <modify ONLY the font color to red in 'style' object>
  else
    new_style = style
  end

  return new_style
end

1 Ответ

0 голосов
/ 28 декабря 2018

Пусть ваш стиль станет хешем, и измените его.

def get_currency_style(style, currency_value)
  if currency_value < 0
    style[:fb_color] = 'red'
  end

  return style
end

style1 = wb.styles.add_style(get_currency_style({ font_name: "Arial", sz: 10, i: true, fg_color: "A6A6A6" }, -10))
...