• js导入excel


    <input type="file"onchange="importf(this)" />
    <p id="excelContent"></p>
    <script src="https://blog-static.cnblogs.com/files/zpblogs/xlsx.js"></script>
    <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的数据
                        */
    
                    var excelJson = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
                    document.getElementById("excelContent").innerHTML = JSON.stringify(excelJson);
                };
    
                if (rABS) {
                    reader.readAsArrayBuffer(f);
                } else {
                    reader.readAsBinaryString(f);
                }
    
            }
            //文件流转BinaryString
            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>
  • 相关阅读:
    [转]wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容) 实例介绍
    [转]HTTPS连接的前几毫秒发生了什么
    将生成的数据写入文件
    linux查看网络监听端口
    [转] Linux下移动virtualbox虚拟硬盘丢失eth0
    sockaddr结构体
    以十六进制形式打印字符串
    pta5-9 Huffman Codes (30分)
    pat1068. Find More Coins (30)
    hduoj 2955Robberies
  • 原文地址:https://www.cnblogs.com/zpblogs/p/11597986.html
Copyright © 2020-2023  润新知