<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="https://oss.sheetjs.com/sheetjs/xlsx.full.min.js"> </script> <script src="excelReview.js"></script> </head> <style> table { border: 1px solid green; border-collapse: collapse; } td { border: 1px solid green; } </style> <body> <input type="file" onchange="importf(this)" /> <br> <br> <br> <div id="demo"></div> </body> </html>
var wb; //读取完成的数据 var rABS = false; //是否将文件读取为二进制字符串 function importf(obj) { //导入 if (!obj.files) { return; } var files = obj.files[0]; var name = files.name; var suffix = name.substring(name.length - 4); if (suffix == "xlsx" || suffix == ".xls" || suffix == ".csv") { 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的数据 document.getElementById("demo").innerHTML = XLSX.utils.sheet_to_html( wb.Sheets[wb.SheetNames[0]] ); }; } else { alert("导入文件格式不对!"); } if (rABS) { reader.readAsArrayBuffer(files); } else { reader.readAsBinaryString(files); } } function fixdata(data) { //文件流转BinaryString 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; }