确认
var fileType = 0; //默认0(0不正确,1正确)
var wb; //读取Excel的数据
var rABS = false; //是否将文件读取为二进制字符串
var excelTab; //Excel
$("#lefile").on('change',function(){
var file = $('#lefile').get(0); //得到文件对象
var filename = $("#lefile").val();
var idx = filename.lastIndexOf(".");
if (idx != -1){
ext = filename.substr(idx+1).toUpperCase();
ext = ext.toLowerCase( );
// alert("ext="+ext);
if (ext != 'xls' && ext != 'xlsx' ){
alert("只能上传.xls和.xlsx类型的文件!");
fileType = 0;
return;
}else{
fileType = 1;
}
} else {
alert("只能上传.xls和.xlsx类型的文件!");
fileType = 0;
return;
}
})
$("#button-next").on('click',function(){
if(fileType == 0){
alert("只能上传.xls和.xlsx类型的文件!");
return;
}else{
var file = $('#lefile').get(0); //得到文件对象
importf(file); //进行读取操作
}
})
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'
});
}
excelTab = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
console.log(excelTab);
printData(excelTab);
};
if(rABS) {
reader.readAsArrayBuffer(f);
} else {
reader.readAsBinaryString(f);
}
}
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;
}
function printData(excelTab){
for( var i = 0; i < excelTab.length; i++ ){
console.log("题目===="+excelTab[i].题目);
console.log("答案===="+excelTab[i].答案);
console.log("解析===="+excelTab[i].解析);
console.log("分数===="+excelTab[i].分数);
}
}
xlsx地址:https://github.com/TaoZY512/xlsx
我的excle文件内容如下:
输出结果:
感谢这位博主https://blog.csdn.net/qq_36908841/article/details/82057066?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task