将HTML表格数据导出到Excel

问题描述:

我正在使用以下代码将HTML数据提取到Excel中。当我点击下载链接时,它下载一个excel文件,但是它的空白并且不包含任何数据。下载的文件大小为1KB。有没有人遇到过这样的问题 ?将HTML表格数据导出到Excel

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"> 
    <meta charset="UTF-8" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script> 
    <script lang="js"> 
     function fnExcelReport() { 
      var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">'; 
      tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'; 

      tab_text = tab_text + '<x:Name>Test Sheet</x:Name>'; 

      tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>'; 
      tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>'; 

      tab_text = tab_text + "<table border='1px'>"; 
      tab_text = tab_text + $('#myTable').html(); 
      tab_text = tab_text + '</table></body></html>'; 

      var data_type = 'data:application/vnd.ms-excel'; 

      var ua = window.navigator.userAgent; 
      var msie = ua.indexOf("MSIE "); 

      if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) { 
       if (window.navigator.msSaveBlob) { 
        var blob = new Blob([tab_text], { 
         type: "application/csv;charset=utf-8;" 
        }); 
        navigator.msSaveBlob(blob, 'Test file.xls'); 
       } 
      } else { 
       $('#test').attr('href', data_type + ', ' + encodeURIComponent(tab_text)); 
       $('#test').attr('download', 'Test file.xls'); 
      } 

     } 
    </script> 
</head> 
<body> 
    <a href="#" id="test" onClick="javascript:fnExcelReport();">download</a> 

    <table id="myTable"> 
     <thead> 
      <tr> 
       <td style="padding-right: 30px;"><b>Name</b> 

       </td> 
       <td style="padding-right: 30px;"><b>Age</b> 

       </td> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td>Tester1</td> 
       <td>30</td> 
      </tr> 
      <tr> 
       <td>Tester2</td> 
       <td>29</td> 
      </tr> 
      <tr> 
       <td>Tester3</td> 
       <td>17</td> 
      </tr> 
     </tbody> 
    </table> 
</body> 
</html> 

没有下载的Excel不为空,有数据说是“tab_text”变量, 尝试打开Excel用记事本文件。你想在excel中保存什么样的数据?将它保持为'\ n'行分隔,并用','分隔列。

+0

我希望一旦打开下载的excel,就可以在excel中显示html表格数据。你能告诉我我该怎么做? –