Spreadsheet format code processing used in http://oss.sheetjs.com
JavaScript Shell
Latest commit 097f026 Jun 25, 2014 @SheetJSDev SheetJSDev version bump 0.8.1: more weird formats
- handle formats like ???00.00
- return empty string with bad dates under A/P and AM/PM formats



SpreadSheet Format (SSF) is a pure-JS library to format data using ECMA-376 spreadsheet format codes (like those used in Microsoft Excel)

This is written in voc -- see ssf.md for code.

To build: voc ssf.md


In the browser:

<script src="ssf.js"></script>

In node:

var SSF = require('ssf');

The script will manipulate module.exports if available (e.g. in a CommonJS require context). This is not always desirable. To prevent the behavior, define DO_NOT_EXPORT_SSF:


.load(fmt, idx) sets custom formats (generally indices above 164).

.format(fmt, val, opts) formats val using the format fmt. If fmt is of type number, the internal table (and custom formats) will be used. If fmt is a literal format, then it will be parsed and evaluated.

.parse_date_code(val, opts) parses val as date code and returns object:

  • D,T: Date ([val]) Time ({val})
  • y,m,d: Year, Month, Day
  • H,M,S,u: (0-23)Hour, Minute, Second, Sub-second
  • q: Day of Week (0=Sunday, 1=Monday, ..., 5=Friday, 6=Saturday)

.get_table() gets the internal format table (number to format mapping).

.load_table(table) sets the internal format table.


Format code 14 in the spec is broken; the correct format is 'mm/dd/yy' (dashes, not spaces)


Apache 2.0


Build Status

Coverage Status

githalytics.com alpha