JS 读取Excel文件(xls) 兼容Chrome/IE/Firefox
2017-06-26 10:35
1116 查看
想读取Excel首先需要两个JS文件。
下载地址
Html代码:
JS代码(excel.acc.js):
如上两页代码+JS-Excel插件即可完成读取Xls文件。
下载地址
Html代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> <!-- Excel插件 --> <script src="../../../public/static/js/shim.js"></script> <script src="../../../public/static/js/xls.js"></script> <!-- 自定义JS --> <script src="../../../public/static/js/excel.acc.js"></script> </head> <body> <!-- 必须有个文件上传 --> <input type="file" id="xlf" name="xlf" /> <br> <!-- 输出查看 --> <textarea id="txtArea" cols=50 rows=10></textarea> <script type='text/javascript'> var drop = document.getElementById('xlf'); //添加Change绑定事件 if(drop.addEventListener) { drop.addEventListener('change', handleFile, false); } function excelReader(data,json) { //输出 document.getElementById('txtArea').innerText = json; } </script> </body> </html>
JS代码(excel.acc.js):
// 依赖于shim.js、xls.js // var X = XLS; function to_json(workbook) { var result = {}; workbook.SheetNames.forEach(function (sheetName) { var roa = XLS.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]); if (roa.length > 0) { result[sheetName] = roa; } }); return result; } function fixdata(data) { 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 process_wb(wb,type) { var output = ""; switch (type) { case "json": output = JSON.stringify(to_json(wb), 2, 2); break; case "form": output = to_formulae(wb); break; default: output = to_csv(wb); } //if (out.innerText === undefined) out.textContent = output; //else out.innerText = output; return output; } function ReadExcel(out) { //如果只要json 可以不用转换 var exlData = JSON.parse(out); // Page1 其实是表格页标签名字,具体示实际名称 // if (exlData.Page1 == null || exlData.Page1 == undefined) { // msgErro("未查询到Excel文件中的数据!"); // //saveLoading('hide'); // return; // } //传出外面 excelReader(exlData,out); } //绑定 Input Change 事件 function handleFile(e) { if (e.target.files[0].name.indexOf(".xls") < 0) { msgErro("请选择.xls格式文件!"); return; } //saveLoading('show'); var files = e.target.files; var output = ""; var f = files[0]; { var reader = new FileReader(); var name = f.name; reader.onload = function (e) { var data = e.target.result; var arr = fixdata(data); var wb = X.read(btoa(arr), { type: 'base64' }); output = process_wb(wb, "json"); ReadExcel(output); }; reader.readAsArrayBuffer(f); } }
如上两页代码+JS-Excel插件即可完成读取Xls文件。
相关文章推荐
- js获取上传文件大小,兼容ie,FireFox,Chrome
- JS直接导出excel 兼容ie、chrome、firefox
- js + php 读取、播放视频流 兼容firefox,chrome,ie,mac的safari,ios的safari,ios的微信浏览器(文件读取文件流篇)
- js读取本地xml文件 兼容IE Firfox Chrome 等浏览器
- JS导出excel 兼容ie、chrome、firefox
- javascript生成.xls文件(兼容IE&Chrome&Firefox)
- js判断上传文件的大小,及确认文件是否在本地存在,兼容firefox、chrome、ie等浏览器
- js + php 读取、播放视频流 兼容firefox,chrome,ie,mac的safari,ios的safari,ios的微信浏览器(curl读取文件流篇)
- js + php 读取、播放视频流 兼容firefox,chrome,ie,mac的safari,ios的safari,ios的微信浏览器(curl读取文件流篇) 分类: php javascript 浏览器兼容 safari 视频流 jwplayer6
- js + php 读取、播放视频流 兼容firefox,chrome,ie,mac的safari,ios的safari,ios的微信浏览器(文件读取文件流篇) 分类: php javascript jwplayer6 视频流 视频 safari
- JS直接导出excel 兼容ie、chrome、firefox
- javascript生成.xls文件(兼容IE&Chrome&Firefox)
- js实现上传文件大小限制,兼容IE、Firefox、Chrome
- js 获取页面高度和宽度兼容 ie firefox chrome等
- JS控制图片翻转示例代码(兼容firefox,ie,chrome)
- 兼容IE、firefox以及chrome的js获取时间(getFullYear)
- JS复制内容到剪贴板: 兼容IE、Firefox、Chrome、Safari所有浏览器【转】
- javascript解析xml文件。兼容IE、firefox、Chrome
- js操作select 兼容ie、chrome、Firefox
- IE、Firefox、Chrome 的JS代码兼容注意事项