使用jQuery读取Excel表格

在项目中用到了使用jQuery读取Excel表格内容并存储到数据库内,于是乎上网找了找诸位大牛写的解决方案,发现都不是特别符合我的需求,顺着诸位大牛的思路自己屡了屡思路,实现了符合自己的需求的代码,话不多说,上代码先。

//定义一个上传文件空间 id就叫excel-file,通过onchange事件触发读取Excel表数据
<input type="file" id="excel-file" onchange="Saveexcel(this)" name="excel-file" />


        //JQuery代码
        //读取excel表中数据
        //
        var wb;//读取完成的数据
        var rABS = false; //是否将文件读取为二进制字符串
        function Saveexcel(obj) {
            if (!obj.files) {
                return;
            }
            //取得文件后缀名进行判断
            var location = $("input[name='excel-file']").val();
            var point = location.lastIndexOf(".");
            var type = location.substr(point);
            if (type != ".xlsx") {
                $.messager.alert('提示', '文档格式不正确,请上传后缀名是.xlsx的文件!', 'info');
                $('#excel-file').val("");
                return;
            }
            //文件后缀名条件符合
            else {
                var f = obj.files[0];
                var reader = new FileReader();
                reader.onload = function (e) {
                    var data = e.target.result;
                    var files = e.target;
                    if (rABS) {
                        wb = XLSX.read(btoa(fixdata(data)), {
                            type: 'base64'
                        }), 
                        persons = [];
                    } else {
                        wb = XLSX.read(data, {
                            type: 'binary'
                        }), 
                        persons = [];//存储取得的数据
                    }
                    //wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
                    //wb.Sheets[Sheet名]获取第一个Sheet的数据
                    var JsonHtml = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]));
                    var fromTo = '';  // 遍历每张表读取
                    for (var sheet in wb.Sheets) {
                        if (wb.Sheets.hasOwnProperty(sheet)) {
                            fromTo = wb.Sheets[sheet]['!ref'];
                            persons = persons.concat(XLSX.utils.sheet_to_json(wb.Sheets[sheet]));
                        }
                    };
                    //var dataID = ['deviceName', 'Type', 'FlowNumber', 'SerialNumber', 'Model', 'Computerroom', 'Company', 'Department', 'Supplier', 'PurchaseTime', 'PurchaseMoney', 'GuaranteeTime', 'CPU', 'Graphicscard', 'Memorybar', 'Amainboard', 'Soundcard', 'Remarks'];//input ID
                   
                if (rABS) {
                    reader.readAsArrayBuffer(f);

                } else {
                    reader.readAsBinaryString(f);
                }
            }

        };


//Excel数据存储在persons数组中

使用这个方法需要引用这个JS文件 <script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script> 直接copy到项目中就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值