Method: Spreadsheet::Excel::Writer::Workbook#write_palette

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

#write_palette(workbook, writer) ⇒ Object



537
538
539
540
541
542
543
544
545
546
547
548
# File 'lib/spreadsheet/excel/writer/workbook.rb', line 537

def write_palette workbook, writer
  data = default_palette

  workbook.palette.each do |idx, color|
    idx = SEDOC_ROLOC[idx] - 8 if idx.is_a? Symbol
    raise "Undefined color index: #{idx}" unless data[idx]
    data[idx] = color
  end

  writer.write [opcode(:palette), 2 + 4 * data.size, data.size].pack("v3")
  writer.write data.collect { |c| c.push(0).pack("C4") }.join
end