1

使用 axlsx,以下

color_scale = Axlsx::ColorScale.new do |c_s|
  c_s.colors[1].rgb = "FFFFFF00"
end
color_scale.add :type => :percentile, :val => 50, :color => "FF00FF00"
worksheet.add_conditional_formatting("B3:B100", { :type => :colorScale, :operator => :greaterThan, :formula => "100000", :priority => 1, :color_scale => color_scale })

创建一个基本的 3 色条件格式,但颜色非常花哨,很难区分稍小和稍大的值。

是否有必要对 Excel 使用的颜色进行逆向工程,以创建类似于 Excel 提供的默认 3 色条件格式的内容?

4

1 回答 1

5

对于色标,Excel 默认首选主题,而 Axlsx 当前希望您准确指定您想要的内容。这部分是为了互操作性,但主要是因为我没有遇到需要与 Excel 默认值相似的用例。

也就是说,Axlsx 应该尽其所能为您提供一些合理的默认值,我相信您可以理解您的请求是如何改善这一领域的绝佳机会。

你能不能给我一个你想要实现的样本 xlsx 吗?我确信我可以添加一些糖,让您对您现在看到的结果更满意,并希望使 gem 的其他用户受益。

更新 2012.11.16

Axlsx 已更新到 1.3.4 版,在 ColorScale 上提供两个类方法来创建新的 ColorScale 对象,并具有合理的默认值,用于两色调和三色调颜色缩放。

例子:

# to make a three tone color scale
color_scale = Axlsx::ColorScale.three_tone

# to make a two tone color scale
color_scale = Axlsx::ColorScale.two_tone

# To make a customized color scale you, pass hashes consisting of 
# type, val and color key-value pairs as arguments to the initializer.
# This example that creates the same three tone color scale as 
# Axlsx::ColorScale.three_tone
color_scale = Axlsx::ColorScale.new({:type => :min, :val => 0, :color => 'FFF8696B'},
                 {:type => :percent, :val => '50', :color => 'FFFFEB84'},
                 {:type => :max, :val => 0, :color => 'FF63BE7B'})
于 2012-10-29T14:17:10.473 回答