forked from sheetjs/docs.sheetjs.com
		
	A1
This commit is contained in:
		
							parent
							
								
									d61cb0d193
								
							
						
					
					
						commit
						2b3ea9dd7e
					
				| @ -34,8 +34,18 @@ Write options are described in the [Writing Options](./api/write-options) sectio | ||||
| 
 | ||||
| ## Utilities | ||||
| 
 | ||||
| Utilities are available in the `XLSX.utils` object and are described in the | ||||
| [Utility Functions](./api/utilities) section: | ||||
| Utilities are available in the `XLSX.utils` object. | ||||
| 
 | ||||
| The following are described in [A1 Utilities](./csf/general#a1-utilities) | ||||
| 
 | ||||
| **Cell and cell address manipulation:** | ||||
| 
 | ||||
| - `encode_row / decode_row` converts between 0-indexed rows and 1-indexed rows. | ||||
| - `encode_col / decode_col` converts between 0-indexed columns and column names. | ||||
| - `encode_cell / decode_cell` converts cell addresses. | ||||
| - `encode_range / decode_range` converts cell ranges. | ||||
| 
 | ||||
| The following are described in the [Utility Functions](./api/utilities): | ||||
| 
 | ||||
| **Constructing:** | ||||
| 
 | ||||
| @ -60,11 +70,6 @@ Utilities are available in the `XLSX.utils` object and are described in the | ||||
| - `sheet_to_formulae` generates a list of the formulae (with value fallbacks). | ||||
| 
 | ||||
| 
 | ||||
| **Cell and cell address manipulation:** | ||||
| **Miscellaneous** | ||||
| 
 | ||||
| - `format_cell` generates the text value for a cell (using number formats). | ||||
| - `encode_row / decode_row` converts between 0-indexed rows and 1-indexed rows. | ||||
| - `encode_col / decode_col` converts between 0-indexed columns and column names. | ||||
| - `encode_cell / decode_cell` converts cell addresses. | ||||
| - `encode_range / decode_range` converts cell ranges. | ||||
| 
 | ||||
|  | ||||
| @ -2,153 +2,157 @@ | ||||
| sidebar_position: 1 | ||||
| --- | ||||
| 
 | ||||
| # Core Concepts | ||||
| # Addresses and Ranges | ||||
| 
 | ||||
| The "Common Spreadsheet Format" (CSF) is the object model used by SheetJS. | ||||
| 
 | ||||
| ## Cell Addresses and Ranges | ||||
| ## Cell Addresses | ||||
| 
 | ||||
| Cell address objects are stored as `{c:C, r:R}` where `C` and `R` are 0-indexed | ||||
| column and row numbers, respectively.  For example, the cell address `B5` is | ||||
| represented by the object `{c:1, r:4}`. | ||||
| 
 | ||||
| ## Cell Ranges | ||||
| 
 | ||||
| Cell range objects are stored as `{s:S, e:E}` where `S` is the first cell and | ||||
| `E` is the last cell in the range.  The ranges are inclusive.  For example, the | ||||
| range `A3:B7` is represented by the object `{s:{c:0, r:2}, e:{c:1, r:6}}`. | ||||
| Utility functions perform a row-major order walk traversal of a sheet range: | ||||
| 
 | ||||
| ### Column and Row Ranges | ||||
| 
 | ||||
| A column range (spanning every row) is represented with the starting row `0` and | ||||
| the ending row `1048575`: | ||||
| 
 | ||||
| ```js | ||||
| for(var R = range.s.r; R <= range.e.r; ++R) { | ||||
|   for(var C = range.s.c; C <= range.e.c; ++C) { | ||||
|     var cell_address = {c:C, r:R}; | ||||
|     /* if an A1-style address is needed, encode the address */ | ||||
|     var cell_ref = XLSX.utils.encode_cell(cell_address); | ||||
|   } | ||||
| } | ||||
| { s: { c: 0, r: 0 }, e: { c: 0, r: 1048575 } } // A:A | ||||
| { s: { c: 1, r: 0 }, e: { c: 2, r: 1048575 } } // B:C | ||||
| ``` | ||||
| 
 | ||||
| ## Cell Object | ||||
| 
 | ||||
| Cell objects are plain JS objects with keys and values following the convention: | ||||
| 
 | ||||
| | Key | Description                                                            | | ||||
| | --- | ---------------------------------------------------------------------- | | ||||
| |     | **Core Cell Properties** ([More Info](#data-types))                    | | ||||
| | `v` | raw value (number, string, Date object, boolean)                       | | ||||
| | `t` | type: `b` Boolean, `e` Error, `n` Number, `d` Date, `s` Text, `z` Stub | | ||||
| |     | **Number Formats** ([More Info](./features#number-formats))            | | ||||
| | `z` | number format string associated with the cell (if requested)           | | ||||
| | `w` | formatted text (if applicable)                                         | | ||||
| |     | **Formulae** ([More Info](./features/formulae))                        | | ||||
| | `f` | cell formula encoded as an A1-style string (if applicable)             | | ||||
| | `F` | range of enclosing array if formula is array formula (if applicable)   | | ||||
| | `D` | if true, array formula is dynamic (if applicable)                      | | ||||
| |     | **Other Cell Properties** ([More Info](./features))                    | | ||||
| | `l` | cell hyperlink and tooltip ([More Info](./features/hyperlinks))        | | ||||
| | `c` | cell comments ([More Info](./features#cell-comments)) | | ||||
| | `r` | rich text encoding (if applicable)                                     | | ||||
| | `h` | HTML rendering of the rich text (if applicable)                        | | ||||
| | `s` | the style/theme of the cell (if applicable)                            | | ||||
| 
 | ||||
| Built-in export utilities (such as the CSV exporter) will use the `w` text if it | ||||
| is available.  To change a value, be sure to delete `cell.w` (or set it to | ||||
| `undefined`) before attempting to export.  The utilities will regenerate the `w` | ||||
| text from the number format (`cell.z`) and the raw value if possible. | ||||
| 
 | ||||
| The actual array formula is stored in the `f` field of the first cell in the | ||||
| array range.  Other cells in the range will omit the `f` field. | ||||
| 
 | ||||
| ### 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: | ||||
| A row range (spanning every column) is represented with the starting col `0` and | ||||
| the ending col `16383`: | ||||
| 
 | ||||
| ```js | ||||
| !!(((wb.Workbook||{}).WBProps||{}).date1904) | ||||
| { s: { c: 0, r: 0 }, e: { c: 16383, r: 0 } } // 1:1 | ||||
| { s: { c: 0, r: 1 }, e: { c: 16383, r: 2 } } // 2:3 | ||||
| ``` | ||||
| 
 | ||||
| </details> | ||||
| # Common Spreadsheet Address Styles | ||||
| 
 | ||||
| ## A1-Style | ||||
| 
 | ||||
| A1-style is the default address style in Lotus 1-2-3 and Excel. | ||||
| 
 | ||||
| Columns are specified with letters, counting from `A` to `Z`, then `AA` to `ZZ`, | ||||
| then `AAA`.  Some sample values, along with SheetJS column indices, are listed: | ||||
| 
 | ||||
| | Ordinal | A1 Name | SheetJS | | ||||
| |:--------|:--------|--------:| | ||||
| | First   | `A`     |     `0` | | ||||
| | Second  | `B`     |     `1` | | ||||
| | 26th    | `Z`     |    `25` | | ||||
| | 27th    | `AA`    |    `26` | | ||||
| | 702st   | `ZZ`    |   `701` | | ||||
| | 703rd   | `AAA`   |   `702` | | ||||
| | 16384th | `XFD`   | `16383` | | ||||
| 
 | ||||
| Rows are specified with numbers, starting from `1` for the first row.  SheetJS | ||||
| APIs that take row indices start from `0` (ECMAScript convention). | ||||
| 
 | ||||
| A cell address is the concatenation of column text and row number.  For example, | ||||
| the cell in the third column and fourth row is "C4". | ||||
| 
 | ||||
| A cell range is represented as the top-left cell of the range, followed by `:`, | ||||
| followed by the bottom-right cell of the range. For example, the range `"C2:D4"` | ||||
| includes 6 cells marked with ▒ in the table below: | ||||
| 
 | ||||
| <table><tbody> | ||||
|   <tr><th> </th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr> | ||||
|   <tr><th>1</th><td> </td><td> </td><td> </td><td> </td><td> </td></tr> | ||||
|   <tr><th>2</th><td> </td><td> </td><td>▒</td><td>▒</td><td> </td></tr> | ||||
|   <tr><th>3</th><td> </td><td> </td><td>▒</td><td>▒</td><td> </td></tr> | ||||
|   <tr><th>4</th><td> </td><td> </td><td>▒</td><td>▒</td><td> </td></tr> | ||||
|   <tr><th>5</th><td> </td><td> </td><td> </td><td> </td><td> </td></tr> | ||||
| </tbody></table> | ||||
| 
 | ||||
| A column range is represented by the left-most column, followed by `:`, followed | ||||
| by the right-most column.  For example, the range `C:D` represents the third and | ||||
| fourth columns. | ||||
| 
 | ||||
| A row range is represented by the top-most row, followed by `:`, followed by the | ||||
| bottom-most column.  For example, `2:4` represents the second/third/fourth rows. | ||||
| 
 | ||||
| ### A1 Utilities | ||||
| 
 | ||||
| #### Column Names | ||||
| 
 | ||||
| _Get the SheetJS index from an A1-Style column_ | ||||
| 
 | ||||
| ```js | ||||
| var col_index = XLSX.utils.decode_col("D"); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a string representing a column. | ||||
| 
 | ||||
| _Get the A1-Style column string from a SheetJS index_ | ||||
| 
 | ||||
| ```js | ||||
| var col_name = XLSX.utils.encode_col(3); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a SheetJS column (non-negative integer). | ||||
| 
 | ||||
| #### Row Names | ||||
| 
 | ||||
| _Get the SheetJS index from an A1-Style row_ | ||||
| 
 | ||||
| ```js | ||||
| var row_index = XLSX.utils.decode_row("4"); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a string representing a row. | ||||
| 
 | ||||
| _Get the A1-Style row string from a SheetJS index_ | ||||
| 
 | ||||
| ```js | ||||
| var row_name = XLSX.utils.encode_row(3); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a SheetJS column (non-negative integer). | ||||
| 
 | ||||
| #### Cell Addresses | ||||
| 
 | ||||
| _Generate a SheetJS cell address from an A1-Style address string_ | ||||
| 
 | ||||
| ```js | ||||
| var address = XLSX.utils.decode_cell("A2"); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a string representing a single cell address. | ||||
| 
 | ||||
| _Generate an A1-style address string from a SheetJS cell address_ | ||||
| 
 | ||||
| ```js | ||||
| var a1_addr = XLSX.utils.encode_cell({r:1, c:0}); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a SheetJS cell address | ||||
| 
 | ||||
| #### Cell Ranges | ||||
| 
 | ||||
| _Generate a SheetJS cell range from an A1-style range string_ | ||||
| 
 | ||||
| ```js | ||||
| var range = XLSX.utils.decode_range("A1:D3"); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a string representing a range or a single cell | ||||
| address.  The single cell address is interpreted as a single cell range, so | ||||
| `XLSX.utils.decode_range("D3")` is the same as `XLSX.utils.decode_range("D3:D3")` | ||||
| 
 | ||||
| _Generate an A1-style address string from a SheetJS cell address_ | ||||
| 
 | ||||
| ```js | ||||
| var a1_range = XLSX.utils.encode_range({ s: { c: 0, r: 0 }, e: { c: 3, r: 2 } }); | ||||
| ``` | ||||
| 
 | ||||
| The argument is expected to be a SheetJS cell range. | ||||
|  | ||||
							
								
								
									
										129
									
								
								docz/docs/07-csf/02-cell.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										129
									
								
								docz/docs/07-csf/02-cell.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,129 @@ | ||||
| --- | ||||
| sidebar_position: 2 | ||||
| --- | ||||
| 
 | ||||
| # Cell Object | ||||
| 
 | ||||
| Cell objects are plain JS objects with keys and values following the convention: | ||||
| 
 | ||||
| | Key | Description                                                            | | ||||
| | --- | ---------------------------------------------------------------------- | | ||||
| |     | **Core Cell Properties** ([More Info](#data-types))                    | | ||||
| | `v` | raw value (number, string, Date object, boolean)                       | | ||||
| | `t` | type: `b` Boolean, `e` Error, `n` Number, `d` Date, `s` Text, `z` Stub | | ||||
| |     | **Number Formats** ([More Info](./features#number-formats))            | | ||||
| | `z` | number format string associated with the cell (if requested)           | | ||||
| | `w` | formatted text (if applicable)                                         | | ||||
| |     | **Formulae** ([More Info](./features/formulae))                        | | ||||
| | `f` | cell formula encoded as an A1-style string (if applicable)             | | ||||
| | `F` | range of enclosing array if formula is array formula (if applicable)   | | ||||
| | `D` | if true, array formula is dynamic (if applicable)                      | | ||||
| |     | **Other Cell Properties** ([More Info](./features))                    | | ||||
| | `l` | cell hyperlink and tooltip ([More Info](./features/hyperlinks))        | | ||||
| | `c` | cell comments ([More Info](./features#cell-comments)) | | ||||
| | `r` | rich text encoding (if applicable)                                     | | ||||
| | `h` | HTML rendering of the rich text (if applicable)                        | | ||||
| | `s` | the style/theme of the cell (if applicable)                            | | ||||
| 
 | ||||
| Built-in export utilities (such as the CSV exporter) will use the `w` text if it | ||||
| is available.  To change a value, be sure to delete `cell.w` (or set it to | ||||
| `undefined`) before attempting to export.  The utilities will regenerate the `w` | ||||
| text from the number format (`cell.z`) and the raw value if possible. | ||||
| 
 | ||||
| The actual array formula is stored in the `f` field of the first cell in the | ||||
| array range.  Other cells in the range will omit the `f` field. | ||||
| 
 | ||||
| ### 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> | ||||
| @ -1,5 +1,5 @@ | ||||
| --- | ||||
| sidebar_position: 2 | ||||
| sidebar_position: 3 | ||||
| --- | ||||
| 
 | ||||
| # Sheet Objects | ||||
| @ -1,5 +1,5 @@ | ||||
| --- | ||||
| sidebar_position: 3 | ||||
| sidebar_position: 4 | ||||
| --- | ||||
| 
 | ||||
| # Workbook Object | ||||
| @ -19,8 +19,7 @@ standard, XLS parsing stores core properties in both places. | ||||
| The various file formats use different internal names for file properties.  The | ||||
| workbook `Props` object normalizes the names: | ||||
| 
 | ||||
| <details> | ||||
|   <summary><b>File Properties</b> (click to show)</summary> | ||||
| <details open><summary><b>File Properties</b> (click to hide)</summary> | ||||
| 
 | ||||
| | JS Name       | Excel Description              | | ||||
| |:--------------|:-------------------------------| | ||||
| @ -104,50 +104,7 @@ The A1-style formula string is stored in the `f` field of the cell object. | ||||
| Spreadsheet software typically represent formulae with a leading `=` sign, but | ||||
| SheetJS formulae omit the `=`. | ||||
| 
 | ||||
| <details><summary><b>What is A1-style?</b> (click to show)</summary> | ||||
| 
 | ||||
| A1-style is the default in Excel. | ||||
| 
 | ||||
| Columns are specified with letters, counting from `A` to `Z`, then `AA` to `ZZ`, | ||||
| then `AAA`.  Some sample values, along with SheetJS column indices, are listed: | ||||
| 
 | ||||
| | Ordinal | A1 Name | SheetJS | | ||||
| |:--------|:--------|--------:| | ||||
| | First   | `A`     |     `0` | | ||||
| | Second  | `B`     |     `1` | | ||||
| | 26th    | `Z`     |    `25` | | ||||
| | 27th    | `AA`    |    `26` | | ||||
| | 702st   | `ZZ`    |   `701` | | ||||
| | 703rd   | `AAA`   |   `702` | | ||||
| | 16384th | `XFD`   | `16383` | | ||||
| 
 | ||||
| Rows are specified with numbers, starting from `1` for the first row.  SheetJS | ||||
| APIs that take row indices start from `0` (ECMAScript convention). | ||||
| 
 | ||||
| A cell address is the concatenation of column text and row number.  For example, | ||||
| the cell in the third column and fourth row is "C4". | ||||
| 
 | ||||
| A cell range is represented as the top-left cell of the range, followed by `:`, | ||||
| followed by the bottom-right cell of the range. For example, the range `"C2:D4"` | ||||
| includes 6 cells marked with ▒ in the table below: | ||||
| 
 | ||||
| <table><tbody> | ||||
|   <tr><th></th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr> | ||||
|   <tr><th>1</th><td></td><td></td><td></td><td></td><td></td></tr> | ||||
|   <tr><th>2</th><td></td><td></td><td>▒</td><td>▒</td><td></td></tr> | ||||
|   <tr><th>3</th><td></td><td></td><td>▒</td><td>▒</td><td></td></tr> | ||||
|   <tr><th>4</th><td></td><td></td><td>▒</td><td>▒</td><td></td></tr> | ||||
|   <tr><th>5</th><td></td><td></td><td></td><td></td><td></td></tr> | ||||
| </tbody></table> | ||||
| 
 | ||||
| A column range is represented by the left-most column, followed by `:`, followed | ||||
| by the right-most column.  For example, the range `C:D` represents the third and | ||||
| fourth columns. | ||||
| 
 | ||||
| A row range is represented by the top-most row, followed by `:`, followed by the | ||||
| bottom-most column.  For example, `2:4` represents the second/third/fourth rows. | ||||
| 
 | ||||
| </details> | ||||
| ["A1-Style"](../general#a1-style) describes A1 style in more detail. | ||||
| 
 | ||||
| For example, consider [this test file](pathname:///files/concat.xlsx): | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user