Class: Axlsx::Selection

Inherits:
Object
  • Object
show all
Defined in:
lib/axlsx/workbook/worksheet/selection.rb

Overview

Note:

The recommended way to manage the selection pane options is via SheetView#add_selection

Selection options for worksheet panes.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Selection

Creates a new Axlsx::Selection object

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • active_cell (Cell, String)

    Active Cell Location

  • active_cell_id (Integer)

    Active Cell Index

  • pane (Symbol)

    Pane

  • sqref (String)

    Sequence of References



70
71
72
73
74
75
76
77
78
# File 'lib/axlsx/workbook/worksheet/selection.rb', line 70

def initialize(options={})
  #defaults
  @active_cell = @active_cell_id = @pane = @sqref = nil
  
  # write options to instance variables
  options.each do |o|
    self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
  end
end

Instance Attribute Details

#active_cellString

Active Cell Location Location of the active cell. default nil

Returns:

  • (String)

See Also:

  • type


14
15
16
# File 'lib/axlsx/workbook/worksheet/selection.rb', line 14

def active_cell
  @active_cell
end

#active_cell_idInteger

Active Cell Index 0-based index of the range reference (in the array of references listed in sqref) containing the active cell. Only used when the selection in sqref is not contiguous. Therefore, this value needs to be aware of the order in which the range references are written in sqref. When this value is out of range then activeCell can be used. default nil

Returns:

  • (Integer)

See Also:

  • type


26
27
28
# File 'lib/axlsx/workbook/worksheet/selection.rb', line 26

def active_cell_id
  @active_cell_id
end

#paneSymbol

Pane The pane to which this selection belongs. Options are

* bottom_left:  Bottom left pane, when both vertical and horizontal
                splits are applied. This value is also used when only
                a horizontal split has been applied, dividing the pane 
                into upper and lower regions. In that case, this value 
                specifies the bottom pane.
* bottom_right: Bottom right pane, when both vertical and horizontal
                splits are applied.
* top_left:     Top left pane, when both vertical and horizontal splits
                are applied. This value is also used when only a horizontal 
                split has been applied, dividing the pane into upper and lower
                regions. In that case, this value specifies the top pane.
                This value is also used when only a vertical split has
                been applied, dividing the pane into right and left
                regions. In that case, this value specifies the left pane
* top_right:    Top right pane, when both vertical and horizontal
                splits are applied. This value is also used when only
                a vertical split has been applied, dividing the pane 
                into right and left regions. In that case, this value 
                specifies the right pane.

default nil

Returns:

  • (Symbol)

See Also:

  • type


54
55
56
# File 'lib/axlsx/workbook/worksheet/selection.rb', line 54

def pane
  @pane
end

#sqrefString

Sequence of References Range of the selection. Can be non-contiguous set of ranges. default nil

Returns:

  • (String)

See Also:

  • type


62
63
64
# File 'lib/axlsx/workbook/worksheet/selection.rb', line 62

def sqref
  @sqref
end

Instance Method Details

#to_xml_string(str = '') ⇒ String

Serializes the data validation

Parameters:

  • str (String) (defaults to: '')

Returns:

  • (String)


104
105
106
107
108
109
# File 'lib/axlsx/workbook/worksheet/selection.rb', line 104

def to_xml_string(str = '')
  str << '<selection '
  str << instance_values.map { |key, value| '' << key.gsub(/_(.)/){ $1.upcase } << 
    %{="#{[:pane].include?(key.to_sym) ? value.to_s.gsub(/_(.)/){ $1.upcase } : value}"} unless value.nil? }.join(' ')
  str << '/>'
end