Class: Axlsx::Title

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

Overview

A Title stores information about the title of a chart

Direct Known Subclasses

SeriesTitle

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(title = "", title_size = "") ⇒ Title

Creates a new Title object

Parameters:

  • title (String, Cell) (defaults to: "")

    The cell or string to be used for the chart's title


20
21
22
23
24
25
26
27
28
# File 'lib/axlsx/drawing/title.rb', line 20

def initialize(title="", title_size="")
  self.cell = title if title.is_a?(Cell)
  self.text = title.to_s unless title.is_a?(Cell)
  if title_size.to_s.empty?
    self.text_size = "1600"
  else
    self.text_size = title_size.to_s
  end
end

Instance Attribute Details

#cellCell

The cell that holds the text for the title. Setting this property will automatically update the text attribute.

Returns:


16
17
18
# File 'lib/axlsx/drawing/title.rb', line 16

def cell
  @cell
end

#textString

The text to be shown. Setting this property directly with a string will remove the cell reference.

Returns:

  • (String)

8
9
10
# File 'lib/axlsx/drawing/title.rb', line 8

def text
  @text
end

#text_sizeString

Text size property

Returns:

  • (String)

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

def text_size
  @text_size
end

Instance Method Details

#to_xml_string(str = '') ⇒ String

Serializes the object

Parameters:

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

Returns:

  • (String)

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/axlsx/drawing/title.rb', line 62

def to_xml_string(str = '')
  str << '<c:title>'
  unless @text.empty?
    str << '<c:tx>'
    if @cell.is_a?(Cell)
      str << '<c:strRef>'
      str << ('<c:f>' << Axlsx::cell_range([@cell]) << '</c:f>')
      str << '<c:strCache>'
      str << '<c:ptCount val="1"/>'
      str << '<c:pt idx="0">'
      str << ('<c:v>' << @text << '</c:v>')
      str << '</c:pt>'
      str << '</c:strCache>'
      str << '</c:strRef>'
    else
      str << '<c:rich>'
        str << '<a:bodyPr/>'
        str << '<a:lstStyle/>'
        str << '<a:p>'
          str << '<a:r>'
            str << ('<a:rPr sz="' << @text_size.to_s << '"/>')
            str << ('<a:t>' << @text.to_s << '</a:t>')
          str << '</a:r>'
        str << '</a:p>'
      str << '</c:rich>'
    end
    str << '</c:tx>'
  end
  str << '<c:layout/>'
  str << '<c:overlay val="0"/>'
  str << '</c:title>'
end