demo下载:https://download.csdn.net/download/wysdong/12839914
$(function () {
//<script src="jquery.min.js" type="text/javascript"></script>
//<script src="xlsx.core.min.js"></script>
//<input type="file" id="excel-file">
//https://github.com/SheetJS/sheetjs //下载地址
//https://www.cnblogs.com/lvsk/p/11970747.html //例子
将excel文档输出成josn数组
$('#excel-file').change(function (e) {
var files = e.target.files;
var fileReader = new FileReader();
fileReader.onload = function (ev) {
var filename = files[0].name;
var fileType = getFileType(filename).toString();
var x;
switch (fileType) {
case '.xls':
x = XLS;
break;
case '.xlsx':
x = XLSX;
break;
default:
x = null;
}
if (x) {
try {
var data = ev.target.result,
workbook = x.read(data, {
type: 'binary'
}), // 以二进制流方式读取得到整份excel表格对象
persons = []; // 存储获取到的数据
} catch (e) {
console.log('文件类型不正确');
return;
}
}
else {
console.log('请选择excel文档');
return;
}
// 表格的表格范围,可用于判断表头是否数量是否正确
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; // 如果只取第一张表,就取消注释这行
}
}
//将excel文档输出成josn数组
console.log(persons);
};
// 以二进制方式打开文件
fileReader.readAsBinaryString(files[0]);
});
function getFileType(filepath) {
var reg = /.[a-zA-Z0-9]+$/;
var filePostfix = reg.exec(filepath);
return filePostfix;
}
})