2015-12-03 39 views
3

如何使用jquery導出爲ex​​cel格式時排除最後一列數據表?我試過.not("#tableid").remove,exclude:"#tableid"但不起作用。是否有任何解決方案,這???下面是我的代碼導出爲ex​​cel時排除最後一列

表代碼:

<table class="table table-bordered table-striped tableToExcel" id="tbl_datatable"> 
    <thead> 
    <tr> 
     <th>Identifier</th> 
     <th>Group Name</th> 
     <th>Group Name English</th> 
     <th>Fiscal Year</th> 
     <th>Date</th> 
     <th>District</th> 
     <th>District in English</th> 
     <th>VDC</th> 
     <th>VDC in English</th> 
     <th>Ward No</th> 
     <th>Program</th> 
     <th>Livestock/Crop</th> 
     <th id="noExl">Action</th> 
    </tr> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

jQuery代碼:

$(document).ready(function() { 
    $("#exportExcel").click(function() { 
     $(function() { 
      $(".tableToExcel").remove("#noExl").table2excel({ 
       exclude: "#noExl", 
       name: "Excel Document Name", 
       filename: "Group", 
       exclude_img: true, 
       exclude_links: true, 
       exclude_inputs: false 
      }); 
     }); 
    }); 
}); 
+1

有許多具有相同的ID'noExl'它不允許。而是使用類名。 –

+0

已經嘗試過類但也沒有解決 – Xravn

+0

在導出之前使用類名並調用'$(「.className」)。remove();' – artm

回答

1

是的,這可以非常快速地完成。由於我們想排除整列,我認爲使用排除類作爲.noExl是一個壞主意。相反,我介紹了一個新的選擇,columns

defaults = { 
    exclude: ".noExl", 
    name: "Table2Excel", 
    columns: [] 
}; 

指定應導出到Excel的列。美麗之處在於,通過這樣做,您還可以指定列的訂單。然後,我改變了init()功能迴路:

$(e.element).each(function(i, o) { 
    var tempRows = ""; 
    $(o).find("tr").not(e.settings.exclude).each(function(i, o) { 
     if (e.settings.columns.length == 0) { 
      tempRows += "<tr>" + $(o).html() + "</tr>"; 
     } else { 
      var row = ""; 
      e.settings.columns.forEach(function(colIndex) { 
       //is it a thead or tbody row? 
       if ($(o).find('th').length > 0) { 
        row += $(o).find('th:eq(' + colIndex + ')')[0].outerHTML; 
       } else { 
        row += $(o).find('td:eq(' + colIndex + ')')[0].outerHTML; 
       } 
      }) 
      tempRows += '<tr>' + row + '</tr>'; 
     } 
    }); 
    e.tableRows.push(tempRows); 
}); 

正是在這裏,在github - >https://github.com/davidkonrad/table2excel

有些問題可以優化,但至少它的工作原理。現在,您可以準確地指定要導出並以何種順序哪些列:

//export only column #2 and #3 and in reverse order 
//NB! columns[] is zero based 
$(".table2excel").table2excel({ 
    name: "Excel Document Name", 
    filename: "myFileName", 
    exclude_img: true, 
    exclude_links: true, 
    exclude_inputs: true, 
    columns : [2,1] 
}) 

演示 - >http://jsfiddle.net/qyrbazur/

在你的情況,如果你要排除的最後一列,用

$(".tableToExcel").remove("#noExl").table2excel({ 
    name: "Excel Document Name", 
    filename: "Group", 
    exclude_img: true, 
    exclude_links: true, 
    exclude_inputs: false 
    columns : [0,1,2,3,4,5,6,7,8,9,10,11] 
}); 
+0

謝謝@davidkonard;) – Xravn