使用js实现excel文件的上传及渲染到前端页面为table


使用js实现excel文件的上传及渲染到前端页面为table:

导入表格:

 

 

 

 

执行结果:

 

 

 代码展示:

<!DOCTYPE html>
<html>

<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>
    <script type="text/javascript" src="./lib/jquery.js"></script>
    <script type="text/javascript" src="https://cdn.bootcss.com/xlsx/0.12.7/xlsx.core.min.js"></script>
    <style>
        table,
        th,
        td {
            border: 1px solid black;
            border-collapse: collapse;
        }

        th,
        td {
            padding: 5px;
        }
    </style>
</head>

<body>
    <!-- 1.文件选择框 -->
    <input type="file" id="file01">
    <!-- 2.上传文件按钮 -->
    <button id="btnUpload">上传文件</button>    
    <div class="progress" style="width: 500px;margin: 15px 10px;">
        <!--bootstrap进度条-->
        <!-- <div class="progress-bar progress-bar-striped active" style="width: 0%" id="percent">0%</div> -->                    
        <table id="demo01"></table>        
    </div>

    <img src="./img/loading.gif" style="display: none;" alt="" id="loading">
    <!-- 3.img标签,来选择上传文件后的图片 -->
    <img src="" alt="" id="img" width="800">

    <script>
        $('#btnUpload').on('click', function () {
            var files = $('#file01')[0].files[0];//文件对象
            // console.log(files);
            var file_name = files['name'];//文件名称                        
            var index = file_name.lastIndexOf(".");
            if (index != -1) {
                file_format = file_name.substr(index + 1).toUpperCase();//文件格式后缀
                if (file_format != 'XLS' && file_format != 'XLSX') {
                    alert("只能上传.xls和.xlsx类型的文件!");
                } else {
                    //读取文件内容
                    var reader = new FileReader();
                    reader.readAsBinaryString(files);
                    reader.onload = function (e) {
                        var data = e.target.result;
                        var wb = XLSX.read(data, {
                            type: 'binary' // 以二进制流方式读取获得整份excel表格对象
                        });
                        var sheet_names = wb.SheetNames;//获取excel中所有表名称
                        // console.log(sheet_name);
                        var sheet1_name = sheet_names[0];//获取excel中第一张表名称
                        var sheet01_obj = XLSX.utils.sheet_to_json(wb.Sheets[sheet1_name]);//获取excel中第一张表数据,数组类型,每一行数据都是一个对象
                        // console.log(sheet01_obj);
                        // console.log(sheet01_obj.length);
                        var table1 = "";
                        var table2 = "";                        

                        var keyArr = [];
                        table1 += "<tr>";
                        for (var key01 in sheet01_obj[0]) {
                            keyArr.push(key01);
                            table1 += '<th nowrap>' + key01 + '</th>';//表头                            
                            // console.log(table1);

                        };
                        table2 += "</tr>";
                        // console.log(table1);

                        for (var i = 0; i < sheet01_obj.length; i++) {
                            table2 += "<tr>";
                            for (var j in sheet01_obj[i]) {
                                // console.log('value:'+j);
                                table2 += '<td nowrap>' + sheet01_obj[i][j] + '</td>';//表数据

                            };
                            table2 += "</tr>";

                        }
                        console.log(table1 + table2);
                        document.getElementById("demo01").innerHTML = table1 + table2;

                    }

                }

            }


        });





    </script>
</body>

</html>

 

 

 

 

<! DOCTYPE  html >
< html >

< 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 >
     < script  type= "text/javascript"  src= "./lib/jquery.js" ></ script >
     < script  type= "text/javascript"  src= "https://cdn.bootcss.com/xlsx/0.12.7/xlsx.core.min.js" ></ script >
     < style >
         table,
         th,
         td {
             border1px  solid  black;
             border-collapsecollapse;
        }

         th,
         td {
             padding5px;
        }
     </ style >
</ head >

< body >
     <!-- 1.文件选择框 -->
     < input  type= "file"  id= "file01" >
     <!-- 2.上传文件按钮 -->
     < button  id= "btnUpload" >上传文件 </ button >
     <!--bootstrap进度条-->
     < div  class= "progress"  style= " width: 500px;margin: 15px 10px; " >
         < div  class= "progress-bar progress-bar-striped active"  style= " width: 0% "  id= "percent" >
            0%

         </ div >
         < table  id= "demo01" >

         </ table >
     </ div >

     < img  src= "./img/loading.gif"  style= " display: none; "  alt= ""  id= "loading" >
     <!-- 3.img标签,来选择上传文件后的图片 -->
     < img  src= ""  alt= ""  id= "img"  width= "800" >

     < script >
         $( '#btnUpload'). on( 'click'function () {
             var  files =  $( '#file01')[ 0]. files[ 0]; //文件对象
             // console.log(files);
             var  file_name =  files[ 'name']; //文件名称                        
             var  index =  file_name. lastIndexOf( ".");
             if ( index != - 1) {
                 file_format =  file_name. substr( index +  1). toUpperCase(); //文件格式后缀
                 if ( file_format !=  'XLS' &&  file_format !=  'XLSX') {
                     alert( "只能上传.xls和.xlsx类型的文件!");
                }  else {
                     //读取文件内容
                     var  reader =  new  FileReader();
                     reader. readAsBinaryString( files);
                     reader. onload =  function ( e) {
                         var  data =  e. target. result;
                         var  wb =  XLSX. read( data, {
                             type:  'binary'  // 以二进制流方式读取获得整份excel表格对象
                        });
                         var  sheet_names =  wb. SheetNames; //获取excel中所有表名称
                         // console.log(sheet_name);
                         var  sheet1_name =  sheet_names[ 0]; //获取excel中第一张表名称
                         var  sheet01_obj =  XLSX. utils. sheet_to_json( wb. Sheets[ sheet1_name]); //获取excel中第一张表数据,数组类型,每一行数据都是一个对象
                         // console.log(sheet01_obj);
                         // console.log(sheet01_obj.length);
                         var  table1 =  "";
                         var  table2 =  "";
                         var  table3 =  "";

                         var  keyArr = [];
                         table1 +=  "<tr>";
                         for ( var  key01  in  sheet01_obj[ 0]) {
                             keyArr. push( key01);
                             table1 +=  '<th nowrap>' +  key01 +  '</th>'; //表头
                             // var table="<tr><th>Artist</th><th>Title</th></tr>";
                             // console.log(table1);

                        };
                         table2 +=  "</tr>";
                         // console.log(table1);

                         for ( var  i =  0i <  sheet01_obj. lengthi++) {
                             table2 +=  "<tr>";
                             for ( var  j  in  sheet01_obj[ i]) {
                                 // console.log('value:'+j);
                                 table2 +=  '<td nowrap>' +  sheet01_obj[ i][ j] +  '</td>'; //表数据

                            };
                             table2 +=  "</tr>";

                        }
                         console. log( table1 +  table2);
                         document. getElementById( "demo01"). innerHTML =  table1 +  table2;

                    }

                }

            }


        });





     </ script >
</ body >

</ html >


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM