Method: Axlsx::Workbook#to_xml_string

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

#to_xml_string(str = '') ⇒ String

Serialize the workbook

Parameters:

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

Returns:

  • (String)


329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
# File 'lib/axlsx/workbook/workbook.rb', line 329

def to_xml_string(str='')
  add_worksheet unless worksheets.size > 0
  str << '<?xml version="1.0" encoding="UTF-8"?>'
  str << '<workbook xmlns="' << XML_NS << '" xmlns:r="' << XML_NS_R << '">'
  str << '<workbookPr date1904="' << @@date1904.to_s << '"/>'
  str << '<sheets>'
  @worksheets.each_with_index do |sheet, index|
    str << '<sheet name="' << sheet.name << '" sheetId="' << (index+1).to_s << '" r:id="' << sheet.rId << '"/>'
    if defined_name = sheet.auto_filter.defined_name
      add_defined_name defined_name, :name => '_xlnm._FilterDatabase', :local_sheet_id => index, :hidden => 1
    end
  end
  str << '</sheets>'
  defined_names.to_xml_string(str)
  unless pivot_tables.empty?
    str << '<pivotCaches>'
    pivot_tables.each do |pivot_table|
      str << '<pivotCache cacheId="' << pivot_table.cache_definition.cache_id.to_s << '" r:id="' << pivot_table.cache_definition.rId << '"/>'
    end
    str << '</pivotCaches>'
  end
  str << '</workbook>'
end