Method: Spreadsheet::Excel::Writer::Workbook#write_sst

Defined in:
lib/spreadsheet/excel/writer/workbook.rb

#write_sst(workbook, writer, offset) ⇒ Object



429
430
431
432
433
434
435
436
437
438
439
440
441
442
# File 'lib/spreadsheet/excel/writer/workbook.rb', line 429

def write_sst workbook, writer, offset
  # Offset  Size  Contents
  #      0     4  Total number of strings in the workbook (see below)
  #      4     4  Number of following strings (nm)
  #      8  var.  List of nm Unicode strings, 16-bit string length (➜ 3.4)
  num_total = 0
  strings = worksheets(workbook).each_with_object(Hash.new(0)) do |worksheet, memo|
    worksheet.strings.each do |k, v|
      memo[k] += v
      num_total += v
    end
  end
  _write_sst workbook, writer, offset, num_total, strings.keys
end