Method: Spreadsheet::Excel::Writer::Workbook#write_formats
- Defined in:
- lib/spreadsheet/excel/writer/workbook.rb
#write_formats(workbook, writer) ⇒ Object
299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 |
# File 'lib/spreadsheet/excel/writer/workbook.rb', line 299 def write_formats workbook, writer # From BIFF5 on, the built-in number formats will be omitted. The built-in # formats are dependent on the current regional settings of the operating # system. BUILTIN_FORMATS shows which number formats are used by # default in a US-English environment. All indexes from 0 to 163 are # reserved for built-in formats. # The first user-defined format starts at 164 (0xa4). formats = @number_formats[workbook] = {} BUILTIN_FORMATS.each do |idx, str| formats.store client(str, "UTF-8"), idx end ## Ensure at least a 'GENERAL' format is written formats.delete client("GENERAL", "UTF-8") idx = 0xa4 workbook.formats.each do |fmt| str = fmt.number_format unless formats[str] formats.store str, idx # Number format string (Unicode string, 16-bit string length, ➜ 3.4) write_op writer, opcode(:format), [idx].pack("v"), unicode_string(str, 2) idx += 1 end end end |