亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js-xlsx 實現 Excel 文件讀取

js-xlsx 實現 Excel 文件讀取

Zoe_z 2019-01-22 12:14:22
<!DOCTYPE?html><html> ????<head> ????????<meta?charset="UTF-8"> ????????<title></title> ????????<script?src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script> ????</head> ????<body> ????????<input?type="file"onchange="importf(this)"?/> ????????<div?id="demo"></div> ????????<script> ????????????/* ????????????FileReader共有4種讀取方法: ????????????1.readAsArrayBuffer(file):將文件讀取為ArrayBuffer。 ????????????2.readAsBinaryString(file):將文件讀取為二進制字符串 ????????????3.readAsDataURL(file):將文件讀取為Data?URL ????????????4.readAsText(file,?[encoding]):將文件讀取為文本,encoding缺省值為'UTF-8' ?????????????????????????*/ ????????????var?wb;//讀取完成的數據 ????????????var?rABS?=?false;?//是否將文件讀取為二進制字符串 ????????????function?importf(obj)?{//導入 ????????????????if(!obj.files)?{????????????????????return; ????????????????}????????????????var?f?=?obj.files[0];????????????????var?reader?=?new?FileReader(); ????????????????reader.onload?=?function(e)?{????????????????????var?data?=?e.target.result;????????????????????if(rABS)?{ ????????????????????????wb?=?XLSX.read(btoa(fixdata(data)),?{//手動轉化 ????????????????????????????type:?'base64' ????????????????????????}); ????????????????????}?else?{ ????????????????????????wb?=?XLSX.read(data,?{????????????????????????????type:?'binary' ????????????????????????}); ????????????????????}????????????????????//wb.SheetNames[0]是獲取Sheets中第一個Sheet的名字 ????????????????????//wb.Sheets[Sheet名]獲取第一個Sheet的數據 ????????????????????document.getElementById("demo").innerHTML=?JSON.stringify(?XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]])?); ????????????????};????????????????if(rABS)?{ ????????????????????reader.readAsArrayBuffer(f); ????????????????}?else?{ ????????????????????reader.readAsBinaryString(f); ????????????????} ????????????}????????????function?fixdata(data)?{?//文件流轉BinaryString ????????????????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> ????</body></html>
查看完整描述

2 回答

  • 2 回答
  • 0 關注
  • 3507 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號