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
							 | 
						||
| 
								 | 
							
								
							 |