SheetJS
0b6ebc67da
- 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
81 行
2.7 KiB
HTML
81 行
2.7 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/axios/dist/axios.min.js"></script>
|
|
<script>
|
|
var demo = 'axios', book = 'xlsx', orig = 'sheetjs.xlsx';
|
|
|
|
if(!window.axios) 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>';
|
|
|
|
axios(orig, {responseType:'arraybuffer'}).then(function(res) {
|
|
var data = new Uint8Array(res.data);
|
|
var wb = XLSX.read(data, {type:"array"});
|
|
process_wb(wb);
|
|
}).catch(function(e) {
|
|
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));
|
|
axios("/upload", {method: "POST", data: fd});
|
|
};
|
|
</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>
|