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 frame.

Returns:

  • (String)


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

def rId
  @anchor.drawing.relationships.for(chart).Id
end

#to_xml_string(str = '') ⇒ String

Serializes the object

Parameters:

  • str (String) (defaults 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_string(str = '')
  # macro attribute should be optional!
  str << '<xdr:graphicFrame>'
  str << '<xdr:nvGraphicFramePr>'
  str << '<xdr:cNvPr id="' << @anchor.drawing.index.to_s << '" name="' << 'item_' << @anchor.drawing.index.to_s << '"/>'
  str << '<xdr:cNvGraphicFramePr/>'
  str << '</xdr:nvGraphicFramePr>'
  str << '<xdr:xfrm>'
  str << '<a:off x="0" y="0"/>'
  str << '<a:ext cx="0" cy="0"/>'
  str << '</xdr:xfrm>'
  str << '<a:graphic>'
  str << '<a:graphicData uri="' << XML_NS_C << '">'
  str << '<c:chart xmlns:c="' << XML_NS_C << '" xmlns:r="' << XML_NS_R << '" r:id="' << rId << '"/>'
  str << '</a:graphicData>'
  str << '</a:graphic>'
  str << '</xdr:graphicFrame>'
end