forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | ## Writing Workbooks
 | ||
|  | 
 | ||
|  | For writing, the first step is to generate output data.  The helper functions | ||
|  | `write` and `writeFile` will produce the data in various formats suitable for | ||
|  | dissemination.  The second step is to actual share the data with the end point. | ||
|  | Assuming `workbook` is a workbook object: | ||
|  | 
 | ||
|  | - nodejs write to file: | ||
|  | 
 | ||
|  | ```js | ||
|  | /* output format determined by filename */ | ||
|  | XLSX.writeFile(workbook, 'out.xlsx'); | ||
|  | /* at this point, out.xlsx is a file that you can distribute */ | ||
|  | ``` | ||
|  | 
 | ||
|  | - browser generate binary blob and "download" to client | ||
|  |   (using [FileSaver.js](https://github.com/eligrey/FileSaver.js/) for download): | ||
|  | 
 | ||
|  | ```js | ||
|  | /* bookType can be 'xlsx' or 'xlsm' or 'xlsb' or 'ods' */ | ||
|  | var wopts = { bookType:'xlsx', bookSST:false, type:'binary' }; | ||
|  | 
 | ||
|  | var wbout = XLSX.write(workbook,wopts); | ||
|  | 
 | ||
|  | function s2ab(s) { | ||
|  |   var buf = new ArrayBuffer(s.length); | ||
|  |   var view = new Uint8Array(buf); | ||
|  |   for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; | ||
|  |   return buf; | ||
|  | } | ||
|  | 
 | ||
|  | /* the saveAs call downloads a file on the local machine */ | ||
|  | saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), "test.xlsx"); | ||
|  | ``` | ||
|  | 
 | ||
|  | **Complete examples:** | ||
|  | 
 | ||
|  | - <http://sheetjs.com/demos/writexlsx.html> generates a simple file | ||
|  | - <http://git.io/WEK88Q> writing an array of arrays in nodejs | ||
|  | - <http://sheetjs.com/demos/table.html> exporting an HTML table | ||
|  | 
 |