ruby-on-rails - 在 Ruby on Rails 中使用 axlsx 时是否可以修改现有样式对象?
问题描述
我正在使用 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
解决方案
让你的风格变成一个哈希,然后修改它。
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))
推荐阅读
- sql - PostgreSQL 11 在行中选择前一个值以与 out sub select 进行比较
- javascript - 我如何让我的代码让用户提交一个品种的狗并返回特定品种的图片
- java - Java 从命令行参数读取文件并打印它
- types - rustc 奇怪地假设类型参数必须相同,即使它们是分开的?
- autohotkey - 如何在 Autohotkey 中通过 RegExp 匹配包含键名的字符串
- python - 带有 GUI 的键侦听器脚本不起作用 (Tkinter)
- r - 使用 Gauss-Hermite 求积评估二元正态分布
- deprecated - 在 2019 年 12 月 6 日 Google Drive Android API 关闭后,Games.Snapshots.open 和所有其他已弃用的 Games API 调用是否会继续工作?
- amazon-web-services - 放置存储桶策略时访问被拒绝
- python - 使用两个整数变量之间差异的逻辑