| 
									
										
										
										
											2013-12-06 16:49:25 +00:00
										 |  |  | # SSF
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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](https://npmjs.org/package/voc) -- see ssf.md for code. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To build: `voc ssf.md` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Setup
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In the browser: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <script src="ssf.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In node: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var SSF = require('ssf'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-10 19:09:11 +00:00
										 |  |  | 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`: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-06 16:49:25 +00:00
										 |  |  | ## Usage
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-20 08:37:48 +00:00
										 |  |  | `.load(fmt, idx)` sets custom formats (generally indices above `164`). | 
					
						
							| 
									
										
										
										
											2013-12-06 16:49:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-20 08:37:48 +00:00
										 |  |  | `.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. | 
					
						
							| 
									
										
										
										
											2013-12-06 16:49:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-10 19:09:11 +00:00
										 |  |  | `.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) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-20 08:37:48 +00:00
										 |  |  | `.get_table()` gets the internal format table (number to format mapping). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `.load_table(table)` sets the internal format table. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-06 16:49:25 +00:00
										 |  |  | ## Notes
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Format code 14 in the spec is broken; the correct format is 'mm/dd/yy' (dashes, | 
					
						
							|  |  |  | not spaces) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## License
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Apache 2.0 | 
					
						
							| 
									
										
										
										
											2014-01-10 19:09:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Tests
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [](https://travis-ci.org/SheetJS/frac) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [](http://githalytics.com/SheetJS/ssf) | 
					
						
							|  |  |  | 
 |