2013-11-26 56 views
0

我有一個小提琴,從另一個論壇使用jQuery將html表導出爲CSV。這工作完美,但我不能讓它包括表標題行。jQuery導出到Excel,包括第html行

的小提琴是: http://jsfiddle.net/KPEGU/480/

我曾與下面的語法混亂周圍沒有任何運氣:

var $rows = $table.find('tr:has(td)'), 

是事做:

$cols = $row.find('td'); 

所以我我正在尋找輸出來包含標題,而不僅僅是普通的表格行。

完整的腳本是:

$(document).ready(function() { 

    function exportTableToCSV($table, filename) { 

     var $rows = $table.find('tr:has(td)'), 


      tmpColDelim = String.fromCharCode(11), 
      tmpRowDelim = String.fromCharCode(0), 
      colDelim = '","', 
      rowDelim = '"\r\n"', 

      csv = '"' + $rows.map(function (i, row) { 
       var $row = $(row), 
        $cols = $row.find('td'); 

       return $cols.map(function (j, col) { 
        var $col = $(col), 
         text = $col.text(); 

        return text.replace('"', '""'); 
       }).get().join(tmpColDelim); 

      }).get().join(tmpRowDelim) 
       .split(tmpRowDelim).join(rowDelim) 
       .split(tmpColDelim).join(colDelim) + '"', 

      // Data URI 
      csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv); 

     $(this) 
      .attr({ 
      'download': filename, 
       'href': csvData, 
       'target': '_blank' 
     }); 
    } 


    $(".export").on('click', function (event) { 
     // CSV 
     exportTableToCSV.apply(this, [$('#dvData>table'), 'export.csv']); 

    }); 
}); 

回答

1

一對夫婦的小變化:

var $rows = $table.find('tr:has(td,th)'), 

$cols = $row.find('td,th'); 
+0

冠軍謝謝。我正在嘗試tr:has(td),tr:has(th)。再次感謝,讚賞。 – Smudger

+0

是的工作 - 我現在在我的項目中使用它 http://jsfiddle.net/KPEGU/2960/ << - 工作副本 – Sandeep