forked from sheetjs/sheetjs
		
	
		
			
	
	
		
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|  | <!DOCTYPE html> | ||
|  | <!-- xlsx.js (C) 2013-present  SheetJS http://sheetjs.com --> | ||
|  | <!-- vim: set ts=2: --> | ||
|  | <html> | ||
|  | <head> | ||
|  | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
|  | <title>SheetJS Live Demo</title> | ||
|  | <style> | ||
|  | a { text-decoration: none } | ||
|  | </style> | ||
|  | </head> | ||
|  | <body> | ||
|  | <pre> | ||
|  | <b><a href="http://sheetjs.com">SheetJS Data Preview Live Demo</a></b> | ||
|  | 
 | ||
|  | <a href="https://github.com/SheetJS/js-xlsx">Source Code Repo</a> | ||
|  | <a href="https://github.com/SheetJS/js-xlsx/issues">Issues?  Something look weird?  Click here and report an issue</a> | ||
|  | <br/><div id="fileurl"></div> | ||
|  | </pre> | ||
|  | <div id="htmlout"></div> | ||
|  | <br /> | ||
|  | <button id="ulbutton">Click here to upload the modified table</button> | ||
|  | <pre> | ||
|  | <div id="outfile"></div> | ||
|  | </pre> | ||
|  | <script src="xlsx.full.min.js"></script> | ||
|  | <script> | ||
|  | var demo = 'fetch', book = 'xlsx'; | ||
|  | 
 | ||
|  | if(!window.fetch) | ||
|  | 	throw new Error("This demo is not supported in your browser"); | ||
|  | 
 | ||
|  | function process_wb(wb) { | ||
|  | 	console.log(wb); | ||
|  | 	htmlout.innerHTML = XLSX.utils.sheet_to_html(wb.Sheets[wb.SheetNames[0]], {editable:true}).replace("<table", '<table id="table" border="1"'); | ||
|  | } | ||
|  | 
 | ||
|  | var url = "sheetjs.xlsx"; | ||
|  | document.getElementById('fileurl').innerHTML = '<a href="' + url + '">Download original file</a>'; | ||
|  | document.getElementById('outfile').innerHTML = '<a href="' + demo + '.' + book + '">Download new file</a>'; | ||
|  | 
 | ||
|  | fetch(url).then(function(res) { | ||
|  | 	if(!res.ok) throw new Error("fetch failed"); | ||
|  | 	return res.blob(); | ||
|  | }).then(function(blob) { | ||
|  | 	var reader = new FileReader(); | ||
|  | 	reader.addEventListener("loadend", function() { | ||
|  | 		var data = new Uint8Array(this.result); | ||
|  | 		var wb = XLSX.read(data, {type:"array"}); | ||
|  | 		process_wb(wb); | ||
|  | 	}); | ||
|  | 	reader.readAsArrayBuffer(blob); | ||
|  | }); | ||
|  | 
 | ||
|  | document.getElementById('ulbutton').onclick = function() { | ||
|  | 	var wb = XLSX.utils.table_to_book(document.getElementById('htmlout')); | ||
|  | 	console.log(wb); | ||
|  | 	var formdata = new FormData(); | ||
|  | 	formdata.append('file', demo + '.' + book); | ||
|  | 	formdata.append('data', XLSX.write(wb, {bookType:book, type:'base64'})); | ||
|  | 	fetch("/upload", {method: "POST", body: formdata}).then(function(r) { return r.text(); }).then(function(t) { console.log(t); });  | ||
|  | }; | ||
|  | </script> | ||
|  | <script type="text/javascript"> | ||
|  | 	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); | ||
|  | 	})(); | ||
|  | </script> | ||
|  | </body> | ||
|  | </html> |