| 
									
										
										
										
											2017-03-20 09:02:25 +00:00
										 |  |  | ## 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: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-30 20:37:53 +00:00
										 |  |  | <details> | 
					
						
							|  |  |  | 	<summary><b>nodejs write a file</b> (click to show)</summary> | 
					
						
							| 
									
										
										
										
											2017-03-20 09:02:25 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | /* output format determined by filename */ | 
					
						
							|  |  |  | XLSX.writeFile(workbook, 'out.xlsx'); | 
					
						
							|  |  |  | /* at this point, out.xlsx is a file that you can distribute */ | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-30 20:37:53 +00:00
										 |  |  | </details> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <details> | 
					
						
							|  |  |  | 	<summary><b>Browser download file</b> (click to show)</summary> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Note: browser generates binary blob and forces a "download" to client.  This | 
					
						
							|  |  |  | example uses [FileSaver.js](https://github.com/eligrey/FileSaver.js/): | 
					
						
							| 
									
										
										
										
											2017-03-20 09:02:25 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							| 
									
										
										
										
											2017-05-16 17:45:35 +00:00
										 |  |  | /* bookType can be any supported output type */ | 
					
						
							| 
									
										
										
										
											2017-03-20 09:02:25 +00:00
										 |  |  | 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"); | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2017-04-30 20:37:53 +00:00
										 |  |  | </details> | 
					
						
							| 
									
										
										
										
											2017-03-20 09:02:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-05 22:27:54 +00:00
										 |  |  | ### Writing Examples
 | 
					
						
							| 
									
										
										
										
											2017-03-20 09:02:25 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | - <http://sheetjs.com/demos/table.html> exporting an HTML table | 
					
						
							| 
									
										
										
										
											2017-04-30 20:37:53 +00:00
										 |  |  | - <http://sheetjs.com/demos/writexlsx.html> generates a simple file | 
					
						
							| 
									
										
										
										
											2017-03-20 09:02:25 +00:00
										 |  |  | 
 |