js读取excel表格

来源:互联网 发布:盘点数据差异如何处罚 编辑:程序博客网 时间:2024/05/16 05:25

考虑到用户体验,有时候有些数据需要存到管理人员比较容易修改编辑的地方,例如脏话过滤的脏话库,这里我们用Excel表格作为数据存储的载体,并利用github开源插件进行对表格数据的操作

首先奉上插件的github地址:https://github.com/SheetJS/js-xlsx
其次:高端demo地址:http://oss.sheetjs.com/js-xlsx/
ajax demo地址:http://oss.sheetjs.com/js-xlsx/ajax.html

我用到的是ajax,所以这里只说ajax的方法,如有其它需求,请参考人家github的讲解
需要的js脚本:shim.js
jszip.js
xlsx.js

非必须的脚本:iemagic.js,此脚本应为支持低端浏览器,正如它的名字ie magic。。。

此脚本首先获取表格对象,然后进行数据读取。

function getLexicon(){        //表格文件地址        var url = "<?php echo "$js_path"?>lexicon.xlsx";        var oReq = new XMLHttpRequest();        oReq.open("GET", url, true);        oReq.responseType = "arraybuffer";        oReq.onload = function(e) {            var arraybuffer = oReq.response;            /* convert data to binary string */            var data = new Uint8Array(arraybuffer);            var arr = new Array();            for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);            var bstr = arr.join("");            /* Call XLSX */            //获取表格对象            var workbook = XLSX.read(bstr, {type:"binary"});            //获取表格所有列            var sheet_name_list = workbook.SheetNames;            //读取列中数据            sheet_name_list.forEach(function(y) { /* iterate through sheets */                var worksheet = workbook.Sheets[y];                for (z in worksheet) {                    /* all keys that do not begin with "!" correspond to cell addresses */                    if(z[0] === '!') continue;                    //push到数组                    lexicon.push(worksheet[z].v);                }            })        }        oReq.send();    }


如上lexicon数组即存储了表格各个单元格的字符串

0 0