我正在使用jQuery datatable 1.10.11及其导出按钮功能,如here所述:
我想跳过导出到excel文件的最后一列,因为此列中有编辑/删除按钮。我的列是动态生成的,因此我无法使用以下方法:
$('#reservation').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'excel',
text: 'Export Search Results',
className: 'btn btn-default',
exportOptions: {
columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
}
}
]
});
我知道这个问题被多次询问,但是它们没有为我工作,可能是版本问题。
答案 0 :(得分:19)
尝试使用排除columns
选项的最后一列的CSS选择器。
$('#reservation').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'excel',
text: 'Export Search Results',
className: 'btn btn-default',
exportOptions: {
columns: 'th:not(:last-child)'
}
}]
});
答案 1 :(得分:8)
您可以添加一个类:
<th class='notexport'>yourColumn</th>
他们按类排除:
$('#reservation').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'excel',
text: 'Export Search Results',
className: 'btn btn-default',
exportOptions: {
columns: ':not(.notexport)'
}
}]
});
答案 2 :(得分:1)
我只是想将其添加进去,因为如果您还没有添加其他内容(例如可见列),那么被接受的答案只能排除在外。
为了仅包括最后一列以外的可见列,以便将其与“列可见性”按钮结合使用,请使用
$('#reservation').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'excel',
text: 'Export Search Results',
className: 'btn btn-default',
exportOptions: {
columns: ':visible:not(:last-child)'
}
}]
});
如果要显式添加自己的类:
$('#reservation').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'excel',
text: 'Export Search Results',
className: 'btn btn-default',
exportOptions: {
columns: ':visible:not(.notexport)'
}
}]
});
答案 3 :(得分:0)
用于 Excel、csv 和 pdf
dom: 'lBfrtip',
buttons: [
{
extend: 'excelHtml5',
text: '<i class="fa fa-file-excel-o"></i> Excel',
titleAttr: 'Export to Excel',
title: 'Insurance Companies',
exportOptions: {
columns: ':not(:last-child)',
}
},
{
extend: 'csvHtml5',
text: '<i class="fa fa-file-text-o"></i> CSV',
titleAttr: 'CSV',
title: 'Insurance Companies',
exportOptions: {
columns: ':not(:last-child)',
}
},
{
extend: 'pdfHtml5',
text: '<i class="fa fa-file-pdf-o"></i> PDF',
titleAttr: 'PDF',
title: 'Insurance Companies',
exportOptions: {
columns: ':not(:last-child)',
},
},
]
答案 4 :(得分:0)
从@Felipe Castilho 那里借来的,他给出了正确的答案和所有的功劳。 如果您想使用 'colvis' 选项,即想显示隐藏列并相应地打印。在这种情况下,去:
<th class='notexport'>yourColumn</th>
然后在 jquery 中
$('#reservation').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'excel',
text: 'Export Search Results',
className: 'btn btn-default',
exportOptions: {
columns: ':visible :not(.notexport)'
}
}]
});
同样,代码直接引用@Felipe,他给出了很好的答案
答案 5 :(得分:-1)
Javascript部分:
file_list=list.files(file_location, pattern="^ID.*xls",full.names = T)
import=lapply(file_list, function(x) read_xls(x, col_names = T))
});
要包含的js文件:
$(document).ready(function() {
$('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
{
extend: 'print',
exportOptions: {
// columns: ':visible' or
columns: 'th:not(:last-child)'
}
},
'colvis'
],
columnDefs: [ {
targets: -1,
visible: false
} ]
} );
希望这对您有所帮助。 谢谢。