forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			26 lines
		
	
	
		
			887 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			887 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | ## Common Spreadsheet Format
 | ||
|  | 
 | ||
|  | SheetJS conforms to the Common Spreadsheet Format (CSF): | ||
|  | 
 | ||
|  | ### General Structures
 | ||
|  | 
 | ||
|  | 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 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: | ||
|  | 
 | ||
|  | ```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); | ||
|  |   } | ||
|  | } | ||
|  | ``` | ||
|  | 
 |