class Axlsx::ConditionalFormatting
Conditional formatting allows styling of ranges based on functions
@note The recommended way to manage conditional formatting is via Worksheet#add_conditional_formatting
@see Worksheet#add_conditional_formatting
@see ConditionalFormattingRule
Attributes
Rules to apply the formatting to. Can be either a hash of options to create a {ConditionalFormattingRule}, an array of hashes for multiple ConditionalFormattingRules, or an array of already created ConditionalFormattingRules. @see ConditionalFormattingRule#initialize @return [Array]
Range over which the formatting is applied, in “A1:B2” format @return [String]
Public Class Methods
Creates a new {ConditionalFormatting} object @option options [Array] rules The rules to apply @option options [String] sqref The range to apply the rules to
# File lib/axlsx/workbook/worksheet/conditional_formatting.rb, line 14 def initialize(options={}) @rules = [] parse_options options end
Public Instance Methods
Add a ConditionalFormattingRule
. If a hash of options is passed in create a rule on the fly. @param [ConditionalFormattingRule|Hash] rule A rule to use, or the options necessary to create one. @see ConditionalFormattingRule#initialize
# File lib/axlsx/workbook/worksheet/conditional_formatting.rb, line 54 def add_rule(rule) if rule.is_a? Axlsx::ConditionalFormattingRule @rules << rule elsif rule.is_a? Hash @rules << ConditionalFormattingRule.new(rule) end end
Add Conditional Formatting Rules to this object. Rules can either be already created {ConditionalFormattingRule} elements or hashes of options for automatic creation. If rules is a hash instead of an array, assume only one rule being added.
@example This would apply formatting “1” to cells > 20, and formatting “2” to cells < 1
conditional_formatting.add_rules [ { :type => :cellIs, :operator => :greaterThan, :formula => "20", :dxfId => 1, :priority=> 1 }, { :type => :cellIs, :operator => :lessThan, :formula => "10", :dxfId => 2, :priority=> 2 } ]
@param [Array|Hash] rules the rules to apply, can be just one in hash form @see ConditionalFormattingRule#initialize
# File lib/axlsx/workbook/worksheet/conditional_formatting.rb, line 43 def add_rules(rules) rules = [rules] if rules.is_a? Hash rules.each do |rule| add_rule rule end end
@see rules
# File lib/axlsx/workbook/worksheet/conditional_formatting.rb, line 63 def rules=(v); @rules = v end
@see sqref
# File lib/axlsx/workbook/worksheet/conditional_formatting.rb, line 65 def sqref=(v); Axlsx::validate_string(v); @sqref = v end
Serializes the conditional formatting element @example Conditional Formatting XML looks like:
<conditionalFormatting sqref="E3:E9"> <cfRule type="cellIs" dxfId="0" priority="1" operator="greaterThan"> <formula>0.5</formula> </cfRule> </conditionalFormatting>
@param [String] str @return [String]
# File lib/axlsx/workbook/worksheet/conditional_formatting.rb, line 76 def to_xml_string(str = '') str << '<conditionalFormatting sqref="' << sqref << '">' str << rules.collect{ |rule| rule.to_xml_string }.join(' ') str << '</conditionalFormatting>' end