jQuery开源组件--js-xlsx Excle导入

参考博客:http://www.jianshu.com/p/74d405940305

github地址:SheetJS / js-xlsx

js引入

<script type="text/javascript" src="~/Content/js-xlsx/xlsx.full.min.js"></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; //是否将文件读取为二进制字符串

        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;
        }

        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]]));
                var jsonStr = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]));//获取JSON字符串
                var jsonObj = JSON.parse(jsonStr);//转化为JSON对象
                var toJsonObj = [];//拼接json对象数组
                for (var i = 0; i < jsonObj.length; i++) {
                    var item = itemObj(jsonObj[i], i);//拼接json对象
                    toJsonObj.push(item);
                }
                $(‘#list‘).bootstrapTable(‘load‘, toJsonObj);
            };
            if (rABS) {
                reader.readAsArrayBuffer(f);
            } else {
                reader.readAsBinaryString(f);
            }
        }
时间: 2024-11-12 21:53:28

jQuery开源组件--js-xlsx Excle导入的相关文章

jQuery开源组件--uploadify

参考博客:jQuery Uploadify在ASP.NET MVC3中的使用 参考博客:使用uploadify上传图片时返回“Cannot read property 'queueData' of undefined” 参考博客:ASP.NET MVC下使用文件上传 官方网站:http://www.uploadify.com/ html代码: <div class="form-group"> <input type="text" id="

[js开源组件开发]query组件,获取url参数和form表单json格式

query组件,获取url参数和form表单json格式 距离上次的组件[js开源组件开发]ajax分页组件一转眼过去了近二十天,或许我一周一组件的承诺有了质疑声,但其实我一直在做,只是没人看到……,最近项目紧,几个小组,只有我一个前端,公司对前端的定位不清晰,导致前端人员过少的情况.所以还得促进公司前端人员增长,不然再这么玩下去,我要被玩死了,一个公司,不可能靠一个资深前端来支撑二三十个开发的需求,这是不现实的,特别是现在的页面不再是复制粘贴的前况下.我默默耕芸,所以这次我整理了这一个月里所有

[js开源组件开发]network异步请求ajax的扩展

network异步请求ajax的扩展 在日常的应用中,你可能直接调用$.ajax是会有些问题的,比如说用户的重复点击,比如说我只希望它成功提交一次后就不能再提交,比如说我希望有个正在提交的loading效果.所以我做network这个组件来扩展$.ajax,希望全中国的人民们喜欢. 这里使用到了上篇[js开源组件开发]loading加载效果 一个loading效果,但为了让它独立运行,所以没有进行引用,而是直接做了一个loading方法在里面.它的具体效果图如下: 它的实例DEMO地址请点击这里

[js开源组件开发]ajax分页组件

ajax分页组件 我以平均每一周出一个开源的js组件为目标行动着,虽然每个组件并不是很庞大,它只完成某一个较小部分的工作,但相信,只要有付出,总会得到回报的.这个组件主要完成分页的工作. 这张图里显示的是这个分页控件的两种基本形态,样式可以自己定制,包括文案内容. 这个分页控件的demo演示地址是: http://www.lovewebgames.com/jsmodule/paging.html 同时,它还是开源的,它的git 地址是:https://github.com/tianxiangbi

[js开源组件开发]数字或金额千分位格式化组件

数字或金额千分位格式化组件 这次距离上一个组件<[js开源组件开发]table表格组件>时隔了一个月,由于最近的项目比较坑,刚挖完坑,所以来总结性提出来几个组件弥补这次的空缺,首先是金额和数字的千分位和小数点控制的组件,它的作用主要是在输入框时限制输入的内容为数字.也可以用于普通标签的数字格式化,效果如下图: demo演示地址请点击 http://www.lovewebgames.com/jsmodule/format-number.html 源码github托管地址请点击https://gi

js day43 Jquery入门(回顾js,Jquery选择器,dom操作)

1     Javascript回顾 问题:Javascript能做什么? 1. 获取操作dom <style> .aa{ background:red} .bb{ background:blue} </style> <body> <div id="dv" title="提示信息" class="aa">AAAAAAAAA</div> <button onclick="f

【高德LBS开源组件大赛】公众号地图工具

应用的名称 公众号地图工具 应用说明及使用场景 现在越来越多的商户都有自己的实体店,比如连锁超市(家乐福,沃尔玛),连锁餐饮(KFC,麦当劳),连锁酒店(7天,汉庭,全季,如家),菜鸟物流(原天猫服务站),银行等.而开发一张连锁店地图,对于毫不懂技术的人们来说,是十分困难的事情.本工具就提供了一个,即使不懂代码,也能制作出一张有趣可爱又实用的连锁店地图.并且,可以自动定位并检索周边的POI点.本工具非常适用于,微博.微信.支付宝服务窗等手机上的地图显示. 应用所使用的技术及软件 HTML CSS

.Net Office开源组件

1.NPOI NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写. http://npoi.codeplex.com/ http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html 2.EPPlus 简介:Epplus是一个使用Open Office 

jquery.form.min.js插件的使用实例

因为项目中需要达到效果:前台点击按钮弹出文件选择框,选择文件确定之后,上传到后台对文件进行处理并给出响应信息. 尝试过使用$.post,$.ajsx,将表单序列化之后传到后台,但是后台并不能收到文件,查找资料后得知: .serialize()序列化表单,提交按钮的值不会被序列化.另外,如果想要一个表单元素的值被序列化成字符串,这个元素必须含有 name 属性.此外,复选框(checkbox)和单选按钮(radio)(input类型为 "radio" 或 "checkbox&q