jquery读取本地excle里的数据

不打扰是莪最后的温柔 提交于 2020-03-07 01:06:25
<!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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!