为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 3450 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信