【问题标题】:Create 3 color conditional formatting with axlsx使用 axlsx 创建 3 色条件格式
【发布时间】:2012-10-29 07:16:52
【问题描述】:

使用 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 色条件格式的内容?

【问题讨论】:

  • 你不能把你理想的Excel页面和一个颜色选择器并排放置,然后在颜色选择器上调整你想要的颜色吗?
  • 我认为我们可以做得更好。

标签: ruby axlsx


【解决方案1】:

对于色标,默认情况下 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'})

【讨论】:

    猜你喜欢
    • 2016-06-06
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    相关资源
    最近更新 更多