96 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | #### Data Types
 | ||
|  | 
 | ||
|  | The raw value is stored in the `v` value property, interpreted based on the `t` | ||
|  | type property.  This separation allows for representation of numbers as well as | ||
|  | numeric text.  There are 6 valid cell types: | ||
|  | 
 | ||
|  | | Type | Description                                                           | | ||
|  | | :--: | :-------------------------------------------------------------------- | | ||
|  | | `b`  | Boolean: value interpreted as JS `boolean`                            | | ||
|  | | `e`  | Error: value is a numeric code and `w` property stores common name ** | | ||
|  | | `n`  | Number: value is a JS `number` **                                     | | ||
|  | | `d`  | Date: value is a JS `Date` object or string to be parsed as Date **   | | ||
|  | | `s`  | Text: value interpreted as JS `string` and written as text **         | | ||
|  | | `z`  | Stub: blank stub cell that is ignored by data processing utilities ** | | ||
|  | 
 | ||
|  | <details> | ||
|  |   <summary><b>Error values and interpretation</b> (click to show)</summary> | ||
|  | 
 | ||
|  | |  Value | Error Meaning   | | ||
|  | | -----: | :-------------- | | ||
|  | | `0x00` | `#NULL!`        | | ||
|  | | `0x07` | `#DIV/0!`       | | ||
|  | | `0x0F` | `#VALUE!`       | | ||
|  | | `0x17` | `#REF!`         | | ||
|  | | `0x1D` | `#NAME?`        | | ||
|  | | `0x24` | `#NUM!`         | | ||
|  | | `0x2A` | `#N/A`          | | ||
|  | | `0x2B` | `#GETTING_DATA` | | ||
|  | 
 | ||
|  | </details> | ||
|  | 
 | ||
|  | Type `n` is the Number type. This includes all forms of data that Excel stores | ||
|  | as numbers, such as dates/times and Boolean fields.  Excel exclusively uses data | ||
|  | that can be fit in an IEEE754 floating point number, just like JS Number, so the | ||
|  | `v` field holds the raw number.  The `w` field holds formatted text.  Dates are | ||
|  | stored as numbers by default and converted with `XLSX.SSF.parse_date_code`. | ||
|  | 
 | ||
|  | Type `d` is the Date type, generated only when the option `cellDates` is passed. | ||
|  | Since JSON does not have a natural Date type, parsers are generally expected to | ||
|  | store ISO 8601 Date strings like you would get from `date.toISOString()`.  On | ||
|  | the other hand, writers and exporters should be able to handle date strings and | ||
|  | JS Date objects.  Note that Excel disregards timezone modifiers and treats all | ||
|  | dates in the local timezone.  The library does not correct for this error. | ||
|  | 
 | ||
|  | Type `s` is the String type.  Values are explicitly stored as text.  Excel will | ||
|  | interpret these cells as "number stored as text".  Generated Excel files | ||
|  | automatically suppress that class of error, but other formats may elicit errors. | ||
|  | 
 | ||
|  | Type `z` represents blank stub cells.  They are generated in cases where cells | ||
|  | have no assigned value but hold comments or other metadata. They are ignored by | ||
|  | the core library data processing utility functions.  By default these cells are | ||
|  | not generated; the parser `sheetStubs` option must be set to `true`. | ||
|  | 
 | ||
|  | 
 | ||
|  | #### Dates
 | ||
|  | 
 | ||
|  | <details> | ||
|  |   <summary><b>Excel Date Code details</b> (click to show)</summary> | ||
|  | 
 | ||
|  | By default, Excel stores dates as numbers with a format code that specifies date | ||
|  | processing.  For example, the date `19-Feb-17` is stored as the number `42785` | ||
|  | with a number format of `d-mmm-yy`.  The `SSF` module understands number formats | ||
|  | and performs the appropriate conversion. | ||
|  | 
 | ||
|  | XLSX also supports a special date type `d` where the data is an ISO 8601 date | ||
|  | string.  The formatter converts the date back to a number. | ||
|  | 
 | ||
|  | The default behavior for all parsers is to generate number cells.  Setting | ||
|  | `cellDates` to true will force the generators to store dates. | ||
|  | 
 | ||
|  | </details> | ||
|  | 
 | ||
|  | <details> | ||
|  |   <summary><b>Time Zones and Dates</b> (click to show)</summary> | ||
|  | 
 | ||
|  | Excel has no native concept of universal time.  All times are specified in the | ||
|  | local time zone.  Excel limitations prevent specifying true absolute dates. | ||
|  | 
 | ||
|  | Following Excel, this library treats all dates as relative to local time zone. | ||
|  | 
 | ||
|  | </details> | ||
|  | 
 | ||
|  | <details> | ||
|  |   <summary><b>Epochs: 1900 and 1904</b> (click to show)</summary> | ||
|  | 
 | ||
|  | Excel supports two epochs (January 1 1900 and January 1 1904). | ||
|  | The workbook's epoch can be determined by examining the workbook's | ||
|  | `wb.Workbook.WBProps.date1904` property: | ||
|  | 
 | ||
|  | ```js | ||
|  | !!(((wb.Workbook||{}).WBProps||{}).date1904) | ||
|  | ``` | ||
|  | 
 | ||
|  | </details> | ||
|  | 
 |