Class: Writexlsx::Package::CellIsFormat

Inherits:
ConditionalFormat show all
Defined in:
lib/write_xlsx/package/conditional_format.rb

Constant Summary

Constants included from Constants

Constants::COL_MAX, Constants::ROW_MAX, Constants::SHEETNAME_MAX, Constants::STR_MAX

Constants included from Utility::Common

Utility::Common::PERL_TRUE_VALUES

Instance Attribute Summary

Attributes inherited from ConditionalFormat

#range

Instance Method Summary collapse

Methods inherited from ConditionalFormat

#bar_axis_color, #bar_axis_position, #bar_border_color, #bar_color, #bar_negative_color, #bar_negative_color_same, #bar_no_border, #bar_only, #criteria, #direction, factory, #format, #formula, #icon_style, #icons, #icons_only, #initialize, #max_color, #max_type, #max_value, #maximum, #mid_color, #mid_type, #mid_value, #min_color, #min_type, #min_value, #minimum, #priority, #range_param_for_conditional_formatting, #reverse_icons, #stop_if_true, #total_icons, #type, #value, #write_cf_rule_formula_tag, #write_cfvo, #write_formula_tag

Methods included from Utility::XmlPrimitives

#r_id_attributes, #write_color, #write_xml_declaration, #xml_str

Methods included from Utility::DateTime

#convert_date_time

Methods included from Utility::Dimensions

#check_dimensions, #check_dimensions_and_update_max_min_values, #store_col_max_min_values, #store_row_max_min_values

Methods included from Utility::CellReference

#row_col_notation, #substitute_cellref, #xl_cell_to_rowcol, #xl_col_to_name, #xl_range, #xl_range_formula, #xl_rowcol_to_cell

Methods included from Utility::Common

#absolute_char, #check_parameter, #float_to_str, #ptrue?, #put_deprecate_message

Constructor Details

This class inherits a constructor from Writexlsx::Package::ConditionalFormat

Instance Method Details

#attributesObject



737
738
739
# File 'lib/write_xlsx/package/conditional_format.rb', line 737

def attributes
  super << ['operator', criteria]
end

#write_cf_ruleObject



741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
# File 'lib/write_xlsx/package/conditional_format.rb', line 741

def write_cf_rule
  if minimum && maximum
    @writer.tag_elements('cfRule', attributes) do
      write_formula_tag(minimum)
      write_formula_tag(maximum)
    end
  else
    quoted_value = value.to_s
    numeric_regex = /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/
    # String "Cell" values must be quoted, apart from ranges.
    if !(quoted_value =~ /^(\$?)([A-Z]{1,3})(\$?)(\d+)/) &&
       !(quoted_value =~ numeric_regex) &&
       !(quoted_value =~ /^".*"$/)
      quoted_value = %("#{value}")
    end
    write_cf_rule_formula_tag(quoted_value)
  end
end