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数组即存储了表格各个单元格的字符串
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- 使用Python生成Excel格式的图片
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 5个常见可用性错误和解决方案
- Excel 曝出 Power Query 安全漏洞,1.2 亿用户易受远程 DDE 攻击
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法