一、首先需要需要引入需要的包
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/xlsx/0.15.1/xlsx.core.min.js"></script>
二、一个上传文件的file类型的input标签
<input type="file" id="excel-file">
三、js相关操作对选中.xls文件进行解析,获取数据
$('#excel-file').change(function(e) {
try {
new Uint8Array([1,2]).slice(0,2);
} catch (e) {
console.log("[Uint8Array"+e.description+"]这里使用【Array.slice】。");
//IE或有些浏览器不支持Uint8Array.slice()方法。改成使用Array.slice()方法
Uint8Array.prototype.slice = Array.prototype.slice;
}
var url=$('#excel-file').val();
if(!url){return;}
var suffix=url.substring(url.lastIndexOf(".")+1,url.length);
if(!(suffix=="xls"||suffix=="xlsx")){
return alert("文件类型不正确");
}
var files = e.target.files;
var fileReader = new FileReader();
fileReader.readAsArrayBuffer(files[0]);// 以二进制方式打开文件
fileReader.onload = function(ev) {
$('#excel-file').val('');
try {
var data = ev.target.result;
var workbook = XLSX.read(data, { type: 'array'}),
persons = [];
} catch (e) {
console.error(e);
return alert('文件类型不正确!');
}
var fromTo = '';
// 遍历每张表读取
for (var sheet in workbook.Sheets) {
if (workbook.Sheets.hasOwnProperty(sheet)) {
fromTo = workbook.Sheets[sheet]['!ref'];
console.log(fromTo);
persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
// break; // 如果只取第一张表,就取消注释这行
}
}
console.log(persons)
};
});