对于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 })

创建基本的三色条件格式,但颜色非常花哨,很难区分稍小和稍大的值。
是否有必要对excel使用的颜色进行反向工程,以便创建类似于excel提供的默认3色条件格式的内容?

最佳答案

对于颜色比例,excel默认情况下会首选主题,而axlsx目前希望您准确地指定所需的内容。这部分是为了互操作性,但主要是因为我没有遇到需要与Excel默认值相似的用例。
也就是说,Axlsx应该尽其所能给您一些合理的默认值,我相信您可以理解您的请求是如何改进这一领域的一个极好的机会。
请给我寄一份你想达到的目标的xlsx样品,好吗?
我相信我可以加入一点糖,让你对你现在看到的结果感到高兴,并希望对gem的其他用户有益。
更新2012.11.16
Axlsx已经更新,在ColorScale上提供了两个类方法来创建新的ColorScale对象,这些对象具有双色调和三色调颜色缩放的合理默认值这本书目前在master中,将在几周后随1.3.4发布
示例:

# 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'})

关于ruby - 使用axlsx创建3种颜色条件格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13117383/

10-12 13:09