| 
									
										
										
										
											2022-08-03 07:42:37 +00:00
										 |  |  | <!DOCTYPE html> | 
					
						
							| 
									
										
										
										
											2022-10-20 18:47:20 +00:00
										 |  |  | <!-- sheetjs (C) 2013-present  SheetJS https://sheetjs.com --> | 
					
						
							| 
									
										
										
										
											2022-08-03 07:42:37 +00:00
										 |  |  | <!-- vim: set ts=2: --> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  | <head> | 
					
						
							|  |  |  | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | 
					
						
							| 
									
										
										
										
											2023-01-09 05:08:30 +00:00
										 |  |  | <meta name="robots" content="noindex"> | 
					
						
							| 
									
										
										
										
											2022-08-03 07:42:37 +00:00
										 |  |  | <title>SheetJS NW.js Demo</title> | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  | #drop{ | 
					
						
							|  |  |  |   border:2px dashed #bbb; | 
					
						
							|  |  |  |   -moz-border-radius:5px; | 
					
						
							|  |  |  |   -webkit-border-radius:5px; | 
					
						
							|  |  |  |   border-radius:5px; | 
					
						
							|  |  |  |   padding:25px; | 
					
						
							|  |  |  |   text-align:center; | 
					
						
							|  |  |  |   font:20pt bold,"Vollkorn";color:#bbb | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | a { text-decoration: none } | 
					
						
							|  |  |  | </style> | 
					
						
							|  |  |  | </head> | 
					
						
							|  |  |  | <body> | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | <b><a href="https://sheetjs.com">SheetJS NW.js Demo</a></b> | 
					
						
							|  |  |  | <br /> | 
					
						
							|  |  |  | <div id="drop">Drop a spreadsheet file here to see sheet data</div> | 
					
						
							|  |  |  | <input type="file" name="xlfile" id="xlf" /> ... or click here to select a file | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | <p><input type="submit" value="Export Data!" id="xport" onclick="export_xlsx();" disabled="true"></p> | 
					
						
							|  |  |  | <div id="htmlout"></div> | 
					
						
							|  |  |  | <br /> | 
					
						
							|  |  |  | <script src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script> | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | var fs = require('fs'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var process_wb = (function() { | 
					
						
							|  |  |  |   var HTMLOUT = document.getElementById('htmlout'); | 
					
						
							|  |  |  |   var XPORT = document.getElementById('xport'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return function process_wb(wb) { | 
					
						
							|  |  |  |     XPORT.disabled = false; | 
					
						
							|  |  |  |     HTMLOUT.innerHTML = ""; | 
					
						
							|  |  |  |     wb.SheetNames.forEach(function(sheetName) { | 
					
						
							|  |  |  |       var htmlstr = XLSX.utils.sheet_to_html(wb.Sheets[sheetName],{editable:true}); | 
					
						
							|  |  |  |       HTMLOUT.innerHTML += htmlstr; | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | })(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var _gaq = _gaq || []; | 
					
						
							|  |  |  | _gaq.push(['_setAccount', 'UA-36810333-1']); | 
					
						
							|  |  |  | _gaq.push(['_trackPageview']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | (function() { | 
					
						
							|  |  |  |   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | 
					
						
							|  |  |  |   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | 
					
						
							|  |  |  |   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | 
					
						
							|  |  |  | })(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | async function do_file(files) { | 
					
						
							|  |  |  |   var file = files[0]; | 
					
						
							|  |  |  |   var data = await file.arrayBuffer(); | 
					
						
							|  |  |  |   process_wb(XLSX.read(data)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-03 06:47:00 +00:00
										 |  |  | (async() => { | 
					
						
							| 
									
										
										
										
											2024-04-26 04:16:13 +00:00
										 |  |  |   process_wb(XLSX.read(await (await fetch("https://docs.sheetjs.com/pres.numbers")).arrayBuffer())) | 
					
						
							| 
									
										
										
										
											2024-01-03 06:47:00 +00:00
										 |  |  | })(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-03 07:42:37 +00:00
										 |  |  | var drop = document.getElementById('drop'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function handleDrop(e) { | 
					
						
							|  |  |  |   e.stopPropagation(); | 
					
						
							|  |  |  |   e.preventDefault(); | 
					
						
							|  |  |  |   do_file(e.dataTransfer.files); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function handleDragover(e) { | 
					
						
							|  |  |  |   e.stopPropagation(); | 
					
						
							|  |  |  |   e.preventDefault(); | 
					
						
							|  |  |  |   e.dataTransfer.dropEffect = 'copy'; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | drop.addEventListener('dragenter', handleDragover, false); | 
					
						
							|  |  |  | drop.addEventListener('dragover', handleDragover, false); | 
					
						
							|  |  |  | drop.addEventListener('drop', handleDrop, false); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var xlf = document.getElementById('xlf'); | 
					
						
							|  |  |  | function handleFile(e) { do_file(e.target.files); } | 
					
						
							|  |  |  | xlf.addEventListener('change', handleFile, false); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var export_xlsx = (function() { | 
					
						
							|  |  |  |   var HTMLOUT = document.getElementById('htmlout'); | 
					
						
							|  |  |  |   var input = document.createElement('input'); | 
					
						
							|  |  |  |   input.style.display = 'none'; | 
					
						
							|  |  |  |   input.setAttribute('nwsaveas', 'SheetJSNWDemo.xlsx'); | 
					
						
							|  |  |  |   input.setAttribute('type', 'file'); | 
					
						
							|  |  |  |   document.body.appendChild(input); | 
					
						
							|  |  |  |   input.addEventListener('cancel',function(){ alert("Save was canceled!"); }); | 
					
						
							|  |  |  |   input.addEventListener('change',function(e){ | 
					
						
							|  |  |  |     var filename=this.value, bookType=(filename.match(/[^\.]*$/)||["xlsx"])[0]; | 
					
						
							|  |  |  |     var wb = XLSX.utils.table_to_book(HTMLOUT.getElementsByTagName("TABLE")[0]); | 
					
						
							|  |  |  |     var wbout = XLSX.write(wb, {type:'buffer', bookType:bookType}); | 
					
						
							|  |  |  |     fs.writeFile(filename, wbout, function(err) { | 
					
						
							|  |  |  |       if(!err) return alert("Saved to " + filename); | 
					
						
							|  |  |  |       alert("Error: " + (err.message || err)); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return function() { input.click(); }; | 
					
						
							|  |  |  | })(); | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | </html> |