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:



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

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:



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

def anchor
  @anchor
end

#chartChart (readonly)

A reference to the chart object associated with this frame

Returns:



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

def chart
  @chart
end

Instance Method Details

#rIdString

The relationship id for this graphic

Returns:

  • (String)


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

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)


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

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