使用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到项目中就可以了。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ParamQuery Grid Pro是ParamQuery Grid的商业级版本,并且已成为台式机,移动设备和触摸设备的专业企业应用程序的首选工具。 它提供了最快的jQuery网格,treegrid,pivot网格和电子表格等最令人垂涎​​的功能,并且基于性能,卓越的UX和开放标准的原则构建。Pro的以下功能是对ParamQuery Grid基本功能的补充。 专业功能: 也可用于Angular(2 +),React和Vue新 从Excel导入(xlsx) 导出到Excel(xlsx),Csv,HTML,Json Excel公式支持 从剪贴板复制粘贴 范围/行分组汇总 合并的单元格具有无限的行跨度和列跨度 延迟加载,聚集等的树状网格 在网格,树网格,数据透视网格和自定义组件之间拖放新 正文和标题单元格上的上下文菜单新 带有拖放工具的枢轴网格面板GUI 打字稿支持 动画制作 多列排序 自动和固定行高的无限行和列 冻结行和列,如Excel 隐藏的行和列 过滤器API和标头过滤器行 列印 复选框列和选择 单元格验证和警告 行编辑,批量编辑和自动保存 原子事务(提交和回滚) 网格/子网格的嵌套 行的细节 滑动支持桌面和触摸设备 流畅和响应式布局 引导程序和自定义主题 ASP.NET(MVC)/ MSSQL中的服务器端示例 PHP5 / MySQL中的服务器端示例 Java / MySQL中的服务器端示例 基本特点: 本地和远程分页,排序和过滤 完全定制的多个行和单元格选择 隐藏或显示列 可调整大小的列和网格 列分组 行摘要 CRUD(创建,读取,更新,删除) 国际化和本地化 显示本地或远程来源的任何数据格式,例如html,array,xml,json等 虚拟和无限滚动行 内联单元格编辑 自定义单元格渲染和编辑 主题滚轮准备就绪,带有24个可立即使用的主题 全键盘导航 所有主要浏览器IE(9 +),Firefox,Chrome,Opera等的外观和功能都一致

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值