2013-02-15 87 views
1

我想將我的html表格導出爲使用js或jquery的excel表格我搜索了谷歌,但沒有獲得任何有用的資源。這裏是我的HTML表的代碼將html5表格導出爲ex​​cel jquery

<table> 
     <thead id='headers'> 
      <tr> 
       <th>Select</th> 
       <th>Name</th> 
       <th>Mobile</th> 
       <th>Mail ID</th> 
       <th>Rating</th> 
       <th>Date</th> 
       <th>Notify</th> 
           <th>View</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
           <td><input type="checkbox"/></td> 
       <td>Praveen</td> 
       <td>9791</td> 
       <td>[email protected]</td> 
       <td>5 star</td> 
       <td>15.2.2013</td> 
       <td>A</td> 
           <td>4</td> 
      </tr> 
         <tr> 
           <td><input type="checkbox"/></td> 
       <td>kumar</td> 
       <td>97912342333</td> 
       <td>[email protected]</td> 
       <td>4 star</td> 
       <td>16.2.2013</td> 
       <td>D</td> 
           <td>3</td> 
      </tr> 
     </tbody> 
    </table> 

請幫我找出任何解決方案.........

+0

您確定哪裏沒有有用的結果? [http://stackoverflow.com/questions/6566831/how-to-export-html-table-to-excel-using-javascript](http://stackoverflow.com/questions/6566831/how-to-export- html-table-to-excel-using-javascript) – Morpheus 2013-02-15 12:02:09

+0

非ie解決方案在這裏.. http://stackoverflow.com/questions/6955627/export-dynamic-html-table-to-excel-in-javascript-in-firefox瀏覽器 – naveen 2013-02-15 12:04:59

+0

使用(coloumn name)和(rows)將內容標記爲excel – Kumar 2013-02-15 12:08:43

回答

0

這裏的溶液(link

$("#btnExport").click(function(e) { 
    window.open('data:application/vnd.ms-excel,' + $('#dvData').html()); 
    e.preventDefault(); 
}); 
+0

也許這對你有用。不適合我 – 2015-10-22 20:08:32

0

我發現the following ,它適用於Chrome(63),Firefox(57)和IE11。簡而言之,您可以通過切片和連接表格行來創建csv。接下來,您將創建一個類型爲「text/csv」的Blob,並最終使用錨點「a」標記的下載屬性下載它,以便頁面不會導航到該文件。

var xport = { 
    _fallbacktoCSV: true, 
    toXLS: function(tableId, filename) { 
    this._filename = (typeof filename == 'undefined') ? tableId : filename; 

    //var ieVersion = this._getMsieVersion(); 
    //Fallback to CSV for IE & Edge 
    if ((this._getMsieVersion() || this._isFirefox()) && this._fallbacktoCSV) { 
     return this.toCSV(tableId); 
    } else if (this._getMsieVersion() || this._isFirefox()) { 
     alert("Not supported browser"); 
    } 

    //Other Browser can download xls 
    var htmltable = document.getElementById(tableId); 
    var html = htmltable.outerHTML; 

    this._downloadAnchor("data:application/vnd.ms-excel" + encodeURIComponent(html), 'xls'); 
    }, 
    toCSV: function(tableId, filename) { 
    this._filename = (typeof filename === 'undefined') ? tableId : filename; 
    // Generate our CSV string from out HTML Table 
    var csv = this._tableToCSV(document.getElementById(tableId)); 
    // Create a CSV Blob 
    var blob = new Blob([csv], { type: "text/csv" }); 

    // Determine which approach to take for the download 
    if (navigator.msSaveOrOpenBlob) { 
     // Works for Internet Explorer and Microsoft Edge 
     navigator.msSaveOrOpenBlob(blob, this._filename + ".csv"); 
    } else {  
     this._downloadAnchor(URL.createObjectURL(blob), 'csv');  
    } 
    }, 
    _getMsieVersion: function() { 
    var ua = window.navigator.userAgent; 

    var msie = ua.indexOf("MSIE "); 
    if (msie > 0) { 
     // IE 10 or older => return version number 
     return parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)), 10); 
    } 

    var trident = ua.indexOf("Trident/"); 
    if (trident > 0) { 
     // IE 11 => return version number 
     var rv = ua.indexOf("rv:"); 
     return parseInt(ua.substring(rv + 3, ua.indexOf(".", rv)), 10); 
    } 

    var edge = ua.indexOf("Edge/"); 
    if (edge > 0) { 
     // Edge (IE 12+) => return version number 
     return parseInt(ua.substring(edge + 5, ua.indexOf(".", edge)), 10); 
    } 

    // other browser 
    return false; 
    }, 
    _isFirefox: function(){ 
    if (navigator.userAgent.indexOf("Firefox") > 0) { 
     return 1; 
    } 

    return 0; 
    }, 
    _downloadAnchor: function(content, ext) { 
     var anchor = document.createElement("a"); 
     anchor.style = "display:none !important"; 
     anchor.id = "downloadanchor"; 
     document.body.appendChild(anchor); 

     // If the [download] attribute is supported, try to use it 

     if ("download" in anchor) { 
     anchor.download = this._filename + "." + ext; 
     } 
     anchor.href = content; 
     anchor.click(); 
     anchor.remove(); 
    }, 
    _tableToCSV: function(table) { 
    // We'll be co-opting `slice` to create arrays 
    var slice = Array.prototype.slice; 

    return slice 
     .call(table.rows) 
     .map(function(row) { 
     return slice 
      .call(row.cells) 
      .map(function(cell) { 
      return '"t"'.replace("t", cell.textContent); 
      }) 
      .join(","); 
     }) 
     .join("\r\n"); 
    } 
};