Class: Axlsx::TwoCellAnchor

Inherits:
Object
  • Object
show all
Includes:
OptionsParser
Defined in:
lib/axlsx/drawing/two_cell_anchor.rb

Overview

Note:

The recommended way to manage drawings and charts is Worksheet#add_chart. Anchors are specified by the :start_at and :end_at options to that method.

This class details the anchor points for drawings.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from OptionsParser

#parse_options

Constructor Details

#initialize(drawing, options = {}) ⇒ TwoCellAnchor

Creates a new TwoCellAnchor object c.start_at 5, 9

Parameters:

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

    a customizable set of options

Options Hash (options):

  • :start_at (Array)

    the col, row to start at THIS IS DOCUMENTED BUT NOT IMPLEMENTED HERE!

  • :end_at (Array)

    the col, row to end at



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 35

def initialize(drawing, options = {})
  @drawing = drawing
  drawing.anchors << self
  @from, @to =  Marker.new, Marker.new(col: 5, row: 10)
  parse_options options

  # bit of a hack to work around the fact that the coords for start at and end at
  # are passed in as an array when specified in initialization options - however
  start_at(*options[:start_at]) if options[:start_at]
  end_at(*options[:end_at]) if options[:end_at]
end

Instance Attribute Details

#drawingDrawing (readonly)

The drawing that holds this anchor

Returns:



28
29
30
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 28

def drawing
  @drawing
end

#fromMarker (readonly)

A marker that defines the from cell anchor. The default from column and row are 0 and 0 respectively

Returns:



12
13
14
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 12

def from
  @from
end

#objectPic, GraphicFrame (readonly)

The object this anchor hosts

Returns:



24
25
26
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 24

def object
  @object
end

#toMarker (readonly)

A marker that returns the to cell anchor. The default to column and row are 5 and 10 respectively

Returns:



15
16
17
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 15

def to
  @to
end

Instance Method Details

#add_chart(chart_type, options) ⇒ Chart

Creates a graphic frame and chart object associated with this anchor

Returns:



65
66
67
68
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 65

def add_chart(chart_type, options)
  @object = GraphicFrame.new(self, chart_type, options)
  @object.chart
end

#add_pic(options = {}) ⇒ Object

Creates an image associated with this anchor.



71
72
73
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 71

def add_pic(options = {})
  @object = Pic.new(self, options)
end

#end_at(x, y = nil) ⇒ Object

Note:

the recommended way to set the to position for graphical

sets the col, row attributes for the to marker objects is directly thru the object

See Also:

  • Char#end_at


59
60
61
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 59

def end_at(x, y = nil)
  to.coord x, y
end

#indexInteger

The index of this anchor in the drawing

Returns:

  • (Integer)


77
78
79
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 77

def index
  @drawing.anchors.index(self)
end

#start_at(x, y = nil) ⇒ Object

Note:

The recommended way to set the start position for graphical

sets the col, row attributes for the from marker. objects is directly thru the object.

See Also:



51
52
53
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 51

def start_at(x, y = nil)
  from.coord x, y
end

#to_xml_string(str = +'')) ⇒ String

Serializes the object

Parameters:

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

Returns:

  • (String)


84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 84

def to_xml_string(str = +'')
  str << '<xdr:twoCellAnchor>'
  str << '<xdr:from>'
  from.to_xml_string str
  str << '</xdr:from>'
  str << '<xdr:to>'
  to.to_xml_string str
  str << '</xdr:to>'
  object.to_xml_string(str)
  str << '<xdr:clientData/>'
  str << '</xdr:twoCellAnchor>'
end