zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Jquery 判断值是否存在于数组之内
    Linux 拷贝有更改的文件
    Thinkphp [美味]常用代码
    Oracle基础知识:DECODE、NVL
    安装配置svn
    搭建LAMP环境以及shell脚本搭建(yum安装)
    Jmeter接口测试webservice
    Jmeter插件安装和使用
    Jmeter中java接口测试
    Jmeter中聚合报告吞吐量的计算
  • 原文地址:https://www.cnblogs.com/zpblogs/p/11597986.html
Copyright © 2011-2022 走看看