forked from sheetjs/sheetjs
		
	- DBF write type N and roundtrip C length (fixes #1888 h/t@bandizsolt) - clean up xhr demo (fixes #2604 h/t @UP2022742) - clean up vue / nuxt demo
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.8 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 src="https://unpkg.com/superagent@7.1.1/dist/superagent.min.js"></script>
 | |
| <script>
 | |
| var demo = 'superagent', book = 'xlsx', orig = 'sheetjs.xlsx';
 | |
| 
 | |
| if(!window.superagent) 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 path = 'files/' + demo + '.' + book;
 | |
| document.getElementById('fileurl').innerHTML = '<a href="' + orig + '">Download original file</a>';
 | |
| document.getElementById('outfile').innerHTML = '<a href="' + path + '">Download new file: ' + path + '</a>';
 | |
| 
 | |
| superagent.get(orig).responseType('arraybuffer').end(function(e, res) {
 | |
| 	if(!e) {
 | |
| 		var data = new Uint8Array(res.body);
 | |
| 		var wb = XLSX.read(data, {type:"array"});
 | |
| 		process_wb(wb);
 | |
| 		return;
 | |
| 	}
 | |
| 	if(/404/.test(e.message) || e.response.status) {
 | |
| 		var ws = XLSX.utils.aoa_to_sheet([
 | |
| 			["Fetch for " + orig + " failed :("],
 | |
| 			["Error Code",  e.response.status],
 | |
| 			["Error Text", e.message],
 | |
| 		]);
 | |
| 		ws["!merges"] = [XLSX.utils.decode_range("A1:B1")];
 | |
| 		process_wb({ "Sheets": { "Sheet1": ws }, "SheetNames": [ "Sheet1" ] });
 | |
| 	}
 | |
| });
 | |
| 
 | |
| document.getElementById('ulbutton').onclick = function() {
 | |
| 	var wb = XLSX.utils.table_to_book(document.getElementById('htmlout'));
 | |
| 	console.log(wb);
 | |
| 	var fd = new FormData();
 | |
| 	var data = XLSX.write(wb, {bookType:book, type:'array'});
 | |
| 	console.log(data);
 | |
| 	fd.append('data', new File([data], demo + '.' + book));
 | |
| 	superagent.post("/upload").send(fd).end(function(e,r) { console.log(r.text); });
 | |
| };
 | |
| </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>
 |