前面的文章中已经讲过关于js表格的导出,此文章主要说到的是excel文件如何导入到网页中,并在网页端显示。
代码部分:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>js导入excel</title> </head> <body> <input type="file"onchange="importf(this)" /> <p id="excelcontent"></p> <script src="xlsx.full.min.js"></script> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> <script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script> <script> var wb;//读取 var rabs = false; //开始导入 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的数据 */ var exceljson = xlsx.utils.sheet_to_json(wb.sheets[wb.sheetnames[0]]); document.getelementbyid("excelcontent").innerhtml= json.stringify( exceljson ); }; if(rabs) { reader.readasarraybuffer(f); } else { reader.readasbinarystring(f); } } //文件流转binarystring 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; } </script> </body> </html>
导入前的表格:
导入后的显示:
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论