Method: Axlsx::CellSerializer.run_xml_string

Defined in:
lib/axlsx/workbook/worksheet/cell_serializer.rb

.run_xml_string(cell, str = '') ⇒ String

builds an xml text run based on this cells attributes.

Parameters:

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

    The string instance this run will be concated to.

Returns:

  • (String)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/axlsx/workbook/worksheet/cell_serializer.rb', line 25

def run_xml_string(cell, str = '')
  if cell.is_text_run?
    data = cell.instance_values.reject{|key, value| value == nil || key == 'value' || key == 'type' }
    keys = data.keys & Cell::INLINE_STYLES
    str << "<r><rPr>"
    keys.each do |key|
      case key
      when 'font_name'
        str << "<rFont val='"<< cell.font_name << "'/>"
      when 'color'
        str << data[key].to_xml_string
      else
        str << "<" << key.to_s << " val='" << data[key].to_s << "'/>"
      end
    end
    str << "</rPr>" << "<t>" << cell.value.to_s << "</t></r>"
  else
    str << "<t>" << cell.value.to_s << "</t>"
  end
  str
end