Class: Axlsx::FilterColumn
- Inherits:
-
Object
- Object
- Axlsx::FilterColumn
- Includes:
- OptionsParser, SerializedAttributes
- Defined in:
- lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb
Overview
The filterColumn collection identifies a particular column in the AutoFilter range and specifies filter information that has been applied to this column. If a column in the AutoFilter range has no criteria specified, then there is no corresponding filterColumn collection expressed for that column.
Constant Summary collapse
- FILTERS =
Allowed filters
[:filters]
Instance Attribute Summary collapse
-
#col_id ⇒ Integer
Zero-based index indicating the AutoFilter column to which this filter information applies.
-
#filter ⇒ Object
readonly
The actual filter being dealt with here This could be any one of the allowed filter types.
Instance Method Summary collapse
-
#apply(row, offset) ⇒ Object
Apply the filters for this column filtered.
-
#hidden_button ⇒ Boolean
Flag indicating whether the AutoFilter button for this column is hidden.
- #hidden_button=(hidden) ⇒ Boolean
-
#initialize(col_id, filter_type, options = {}) {|@filter| ... } ⇒ FilterColumn
constructor
Creates a new FilterColumn object.
-
#show_button ⇒ Boolean
Flag indicating whether the filter button is visible.
-
#show_button=(show) ⇒ Boolean
Flag indicating whether the AutoFilter button is show.
-
#to_xml_string(str = '') ⇒ Object
Serialize the object to xml.
Methods included from SerializedAttributes
#declared_attributes, included, #serialized_attributes, #serialized_element_attributes, #serialized_tag
Methods included from OptionsParser
Constructor Details
#initialize(col_id, filter_type, options = {}) {|@filter| ... } ⇒ FilterColumn
This class yeilds its filter object as that is where the vast majority of processing will be done
Creates a new FilterColumn object
17 18 19 20 21 22 23 24 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 17 def initialize(col_id, filter_type, = {}) RestrictionValidator.validate 'FilterColumn.filter', FILTERS, filter_type # Axlsx::validate_unsigned_int(col_id) self.col_id = col_id @filter = Axlsx.const_get(Axlsx.camel(filter_type)).new() yield @filter if block_given? end |
Instance Attribute Details
#col_id ⇒ Integer
Zero-based index indicating the AutoFilter column to which this filter information applies.
33 34 35 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 33 def col_id @col_id end |
#filter ⇒ Object (readonly)
The actual filter being dealt with here This could be any one of the allowed filter types
37 38 39 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 37 def filter @filter end |
Instance Method Details
#apply(row, offset) ⇒ Object
Apply the filters for this column filtered.
66 67 68 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 66 def apply(row, offset) row.hidden = @filter.apply(row.cells[offset + col_id.to_i]) end |
#hidden_button ⇒ Boolean
Flag indicating whether the AutoFilter button for this column is hidden.
49 50 51 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 49 def @hidden_button ||= false end |
#hidden_button=(hidden) ⇒ Boolean
72 73 74 75 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 72 def (hidden) Axlsx.validate_boolean hidden @hidden_button = hidden end |
#show_button ⇒ Boolean
Flag indicating whether the filter button is visible. When the cell containing the filter button is merged with another cell, the filter button can be hidden, and not drawn.
43 44 45 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 43 def @show_button ||= true end |
#show_button=(show) ⇒ Boolean
Flag indicating whether the AutoFilter button is show. This is undocumented in the spec, but exists in the schema file as an optional attribute.
82 83 84 85 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 82 def (show) Axlsx.validate_boolean show @show_botton = show end |
#to_xml_string(str = '') ⇒ Object
Serialize the object to xml
88 89 90 91 92 |
# File 'lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb', line 88 def to_xml_string(str = '') str << "<filterColumn #{serialized_attributes}>" @filter.to_xml_string(str) str << "</filterColumn>" end |