Class: Axlsx::TwoCellAnchor

Inherits:
Object
  • Object
show all
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.

See Also:

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (TwoCellAnchor) initialize(drawing, options = {})

Note:

the chart_type parameter will be replaced with object in v. 2.0.0

Creates a new TwoCellAnchor object and sets up a reference to the from and to markers in the graphic_frame’s chart. That means that you can do stuff like c = worksheet.add_chart Axlsx::Chart c.start_at 5, 9

Parameters:

  • drawing (Drawing)
  • chart_type (Class)

    This is passed to the graphic frame for instantiation. must be Chart or a subclass of Chart

  • object

    The object this anchor holds.

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

    a customizable set of options

Options Hash (options):

  • start_at (Array)

    the col, row to start at

  • end_at (Array)

    the col, row to end at



38
39
40
41
42
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 38

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

Instance Attribute Details

- (Drawing) drawing (readonly)

The drawing that holds this anchor

Returns:



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

def drawing
  @drawing
end

- (Marker) from (readonly)

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

Returns:



9
10
11
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 9

def from
  @from
end

- (Pic, GraphicFrame) object (readonly)

The object this anchor hosts

Returns:



21
22
23
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 21

def object
  @object
end

- (Marker) to (readonly)

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

Returns:



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

def to
  @to
end

Instance Method Details

- (Chart) add_chart(chart_type, options)

Creates a graphic frame and chart object associated with this anchor

Returns:



46
47
48
49
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 46

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

- (Integer) index

The index of this anchor in the drawing

Returns:

  • (Integer)


53
54
55
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 53

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

- (String) to_xml(xml)

Serializes the two cell anchor

Parameters:

  • xml (Nokogiri::XML::Builder)

    The document builder instance this objects xml will be added to.

Returns:

  • (String)


59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/axlsx/drawing/two_cell_anchor.rb', line 59

def to_xml(xml)
  #build it for now, break it down later!
  xml.send('xdr:twoCellAnchor') {
    xml.send('xdr:from') {
      from.to_xml(xml)
    }
    xml.send('xdr:to') {
      to.to_xml(xml)
    }
    @object.to_xml(xml)
    xml.send('xdr:clientData')
  }
end