=====
Usage
=====
Simple Usage
------------
To use ssf in a project::
>>> from ssf import SSF
>>> ssf = SSF()
>>> ssf.format('#,##0', 1000)
'1,000'
>>> ssf.format('Currency', 1000.98)
'$1,000.98'
>>> ssf.format('Currency', 1000.98, locale='de-DE')
'1.000,98 €'
>>> ssf.format('General', 100000, width=5)
'1E+05'
>>> ssf.format('?/?', 3.14159)
'22/7'
>>> ssf.format('Long Date', '1/1/2001', locale='fr-FR')
'lundi 01 janvier 2001'
>>> ssf.format('[DBNum1][$-804]General', 12.3456789)
'一十二.三四五六七八九'
>>> ssfc = SSF(color_pre='', color_post='')
>>> ssfc.format('0;[Red]0;0;@', -2)
'2'
See the API reference for the options you can pass to `SSF()`. Most options
can be also passed to the `ssf.format()` method, enabling you to create one instance of the
`SSF` object.
Manipulating the Internal Format Table
--------------------------------------
Binary spreadsheet formats store cell formats in a table and references them by index.
This library uses a table implemented as a dict per object instance. You can use
`ssf.load(fmt)` to load additional entries into unused slots in the table - it returns
the index it chooses. You can also specify the index by using `ssf.load(fmt, ndx)`.
For compatibility with the XLS and XLSB file formats, custom indices should be in the valid ranges
`5-8`, `23-26`, `41-44`, `63-66`, `164-382` (see `[MS-XLSB] 2.4.655 BrtFmt`)
`ssf.get_table()` gets the internal table as a dict (number to format string mapping).
`ssf.load_table(table)` sets the internal table from a dict mapping ints to format strings.
Other Utilities
---------------
Static method `SSF.is_date(fmt)` returns `True` if `fmt` encodes a date format.
`ssf.get_format(type, ...)` returns a format appropriate for the type and locale. The `type`
should be (`General`, `Number`, `Currency`, `Accounting`, `Date`, `Short Date`, `Long Date`, `Time`,
`Percentage`, `Fraction`, `Scientific`, or `Text`). See the API reference for more information.
References
----------
- `MS-XLSB`: `Excel (.xlsb) Binary File Format `_
- `ECMA-376`: `Number Format Specification `_