這次帶給大家js-xlsx讀取xlsx檔的非同步詳解,使用js-xlsx讀取xlsx檔非同步操作的注意事項有哪些,下面就是實戰案例,一起來看一下。
請求主要函數:
function fetchAB(url, cb) { var xhr = new XMLHttpRequest; xhr.open('get', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = cb; xhr.send(); };
結合js-xlsx讀取xlsx檔案線上範例:
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title> <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script> <script> function fetchAB(url, cb) { var xhr = new XMLHttpRequest; xhr.open('get', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = cb; xhr.send(); }; </script> <script> var wb; var url = "" function importf() {//导入 url = document.getElementById("url").value; if (url) { fetchAB(url, function () { if (this.status == 200) { wb = XLSX.read(btoa(fixdata(this.response)), {//手动转化 type: 'base64' }); document.getElementById("demo").innerHTML = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]])); } }); } } function fixdata(data) { var o = "", l = 0, w = 10240; for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w))); o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); return o; } </script></head><body> <input type="text" id="url" /> <input type="button" onclick="importf()" value="读取" /> <div id="demo"></div></body></html>
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
相關閱讀:
js的隨機字串正規方法([A~Z],[a~z],[0~9])
#以上是js-xlsx讀取xlsx檔案的非同步詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!