2017-03-01 53 views
3

我已經使用Datatable創建了一個表格,並且還導出了數據ID pdf和excel。有一列序列號(S.No。 )哪個指數沒有。是1.表格正在網頁中工作。但是當文件正在導出標題時顯示的是序列號,但是文件中沒有顯示編號。 請參閱下面的代碼。 如果有任何解決方案,請讓我知道。 感謝自動生成的索引列不使用Jquery Datatable生成的文件(pdf,excel)導出

$(document).ready(function() { 
var t = $('#log').DataTable({   
    dom: 'Blfrtip', 
    buttons: [ 
    { 
     extend: 'pdf', 
     title: 'Activity Report', 
     footer: true, 
     exportOptions: { 
      columns: [1,2,3,4,5] 
     } 
    }, 
    { 
     extend: 'excel', 
     title: 'Activity Report', 
     exportOptions: { 
      columns: [1,2,3,4,5] 
     }, 
     footer: false 
    } , 
    { 
     extend: 'print', 
     title: 'Login Activity Report', 
     exportOptions: { 
      columns: [1,2,3,4,5] 
     }, 
     footer: true 
    }  
] 
}); 
    t.on('order.dt search.dt', function() { 
    t.column(1, {search:'applied', order:'applied'}).nodes().each(function (cell, i) { 
     cell.innerHTML = i+1; 
    }); 
    }).draw(); 
}); 

回答

0

我假設你的列名從數據庫來了,你在運行時的所有列分配值。我還假設您的列名稱如下NAME,ACCOUNT,AGE,SALARY然後在將列顯示到數據庫時,通過以下方式在其中添加一個空列,名爲srno

"aoColumns": [ 
    { 
      "data": "srno", 
      "defaultContent": "" // WHICH IS CHANGED TO SR NO 
    },] 

在這裏,我們因此在導出選項,你就必須改變它像

exportOptions: { 
     columns: [0,1,2,3,4] 
    } 

我們這樣做是因爲列在數據表的jQuery數組賦值爲null值0列。

$(document).ready(function() { 
var t = $('#log').DataTable({   
dom: 'Blfrtip', 
buttons: [ 
{ 
    extend: 'pdf', 
    title: 'Activity Report', 
    footer: true, 
    exportOptions: { 
     columns: [0,1,2,3,4] 
    } 
    }, 
{ 
    extend: 'excel', 
    title: 'Activity Report', 
    exportOptions: { 
     columns: [0,1,2,3,4] 
    }, 
    footer: false 
    } , 
    { 
    extend: 'print', 
    title: 'Login Activity Report', 
    exportOptions: { 
     columns: [0,1,2,3,4] 
    }, 
    footer: true 
    }  
] 
"aoColumns": [ 
    { 
      "data": "srno", 
      "defaultContent": "" // WHICH IS CHANGED TO SR NO 
    }, 
    { "mData": "NAME" }, 
    { "mData": "ACCOUNT" }, 
    { "mData": "AGE" }, 
    { "mData": "SALARY" } 
    ] 
}); 
t.on('order.dt search.dt', function() { 
t.column(1, {search:'applied', order:'applied'}).nodes().each(function (cell, i) { 
    cell.innerHTML = i+1; 
    }); 
    }).draw(); 
}); 

今天我面臨同樣的問題,經過一番[R & d我來到了這個解決方案。雖然解決您的問題爲時已晚,但我希望它能幫助我們社區的其他讀者。

+0

開始我在這裏有同樣的問題。 –

0

據我瞭解,你需要索引列正在被您的網頁上顯示的PDF頁面,即上進行印刷,應該始終1.

t.on('order.dt search.dt', function() { 
     t.column(1, {search:'applied', order:'applied'}).nodes().each(function (cell, i) { 
      cell.innerHTML = i+1; 
      t.cell(cell).invalidate('dom'); 
      }); 
     }).draw();