<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<input id="lefile" type="file" >
<button type="button" id="button-next">确认</button>
</body>
<script src="./xlsx-master/xlsx-master/xlsx.full.min.js"></script>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script>
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].分数);
}
}
</script>
</html>
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
来源:oschina
链接:https://my.oschina.net/zhangxuman/blog/3189401