Class: Axlsx::GraphicFrame

Inherits:
Object
  • Object
show all
Defined in:
lib/axlsx/drawing/graphic_frame.rb

Overview

Note:

The recommended way to manage charts is Worksheet#add_chart

A graphic frame defines a container for a chart object

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(anchor, chart_type, options) ⇒ GraphicFrame

Creates a new GraphicFrame object

Parameters:



18
19
20
21
22
# File 'lib/axlsx/drawing/graphic_frame.rb', line 18

def initialize(anchor, chart_type, options)
  DataTypeValidator.validate "Drawing.chart_type", Chart, chart_type 
  @anchor = anchor
  @chart = chart_type.new(self, options)
end

Instance Attribute Details

#anchorTwoCellAnchor (readonly)

A anchor that holds this frame

Returns:



13
14
15
# File 'lib/axlsx/drawing/graphic_frame.rb', line 13

def anchor
  @anchor
end

#chartChart (readonly)

A reference to the chart object associated with this frame

Returns:



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

def chart
  @chart
end

Instance Method Details

#rIdString

The relationship id for this graphic

Returns:

  • (String)


26
27
28
# File 'lib/axlsx/drawing/graphic_frame.rb', line 26

def rId 
  "rId#{@anchor.index+1}"
end

#to_xml(xml) ⇒ String

Serializes the graphic frame

Parameters:

  • xml (Nokogiri::XML::Builder)

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

Returns:

  • (String)


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/axlsx/drawing/graphic_frame.rb', line 33

def to_xml(xml)
  xml.send('xdr:graphicFrame') {        
    xml.send('xdr:nvGraphicFramePr') {
      xml.send('xdr:cNvPr', :id=>2, :name=>chart.title)
      xml.send('xdr:cNvGraphicFramePr')                
    }
    xml.send('xdr:xfrm') {
      xml.send('a:off', :x=>0, :y=>0)
      xml.send('a:ext', :cx=>0, :cy=>0)
    }
    xml.send('a:graphic') {
      xml.send('a:graphicData', :uri=>XML_NS_C) {
        xml.send('c:chart', :'xmlns:c'=>XML_NS_C, :'xmlns:r'=>XML_NS_R, :'r:id'=>rId)
      }
    }
  }
  
end