您的位置:首页 > Web前端 > JavaScript

js读取excel表格

2016-07-10 14:13 465 查看

考虑到用户体验,有时候有些数据需要存到管理人员比较容易修改编辑的地方,例如脏话过滤的脏话库,这里我们用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数组即存储了表格各个单元格的字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息