2015-06-22 24 views
2

我使用不同格式(如excel,pdf)使用TableTools從jQuery數據表導出數據。某些單元格在數據表中具有不同的背景顏色。但這些顏色不會在導出的Excel或PDF中顯示。誰能告訴我,如何解決這個問題?使用單元格顏色導出jQuery數據表數據

下面是數據表的代碼:

var wdm_without_groupcode_attendee_table = jQuery("#wdm_without_groupcode_attendee_table").DataTable({ 
    "dom": 'CT<"clear">lfrtip', 
      "tableTools": { 
         "sSwfPath": wdm_new_reports_localize_data.wdm_swf_path , //Getting path from localize script 
         "aButtons": [ 
            { 
             "sExtends": "copy",   
             "oSelectorOpts": { filter: "applied", order: "current" } 
            }, 
            { 
             'sExtends': 'xls',   
             "oSelectorOpts": { filter: 'applied', order: 'current' } 
            }, 
            { 
             'sExtends': 'print',    
             "oSelectorOpts": { filter: 'applied', order: 'current' } 
            }, 
            { 
             'sExtends': 'pdf',    
             "oSelectorOpts": { filter: 'applied', order: 'current' } 
            }, 
            { 
             'sExtends': 'csv',  
             "oSelectorOpts": { filter: 'applied', order: 'current' } 
            }] 
         }, 
      "aoColumns": [ 
        {sClass: "alignLeft"}, 
        {sClass: "alignLeft"}, 
        {sClass: "alignCenter"}, 
        {sClass: "alignCenter"}, 
        {sClass: "alignCenter"}, 
        {sClass: "alignCenter"}, 
        {sClass: "alignCenter"}, 
        {sClass: "alignCenter"}, 
        {sClass: "alignLeft"}, 
        {sClass: "alignCenter"}, 
        {sClass: "alignCenter"} 
        ], 
      "createdRow": function (row, data, index) { 


       jQuery('td',row).eq(4).addClass('DARK_BLUE'); 
       jQuery('td',row).eq(5).addClass('ORANGE'); 
       jQuery('td',row).eq(6).addClass('RED'); 

       //to decide color of cells 
       if (data[2].toLowerCase().indexOf("yes") >= 0) { 
        jQuery('td', row).eq(2).addClass('SKY_BLUE'); 
       } 
       if (data[3] >= 1) { 
        jQuery('td', row).eq(3).addClass('DARK_BLUE'); 
       } 
       if (data[7].toLowerCase().indexOf("yes") >= 0) { 
        jQuery('td', row).eq(7).addClass('DARK_BLUE'); 
       } 
      } 
}); 
+0

請分享你的代碼,你做了什麼,到現在?所以有人可以修改你的 – Panther

+0

謝謝@Panther ..我已經添加了數據表的代碼。 – ved

回答

0

我不知道,但它看起來像你的着色TRTDs後完全創建 所以試試這個createdCell代替。

"aoColumns": [ 
    {sClass: "alignLeft"}, 
    {sClass: "alignLeft", createdCell: function (td, cellData, rowData, row, col) { 
     if (cellData >= 1) 
      $(td).addClass('DARK_BLUE'); 
    }}, 
    {sClass: "alignCenter", createdCell: function (td, cellData, rowData, row, col) { 
     if (cellData.toLowerCase().indexOf("yes") >= 0) 
      $(td).addClass('SKY_BLUE'); 
    }}, 
    {sClass: "alignCenter DARK_BLUE"}, 
    {sClass: "alignCenter ORANGE"}, 
    {sClass: "alignCenter RED"}, 
    {sClass: "alignCenter", createdCell: function (td, cellData, rowData, row, col) { 
     if (cellData >= 1) 
      $(td).addClass('DARK_BLUE'); 
    }}, 
    {sClass: "alignCenter"}, 
    {sClass: "alignLeft"}, 
    {sClass: "alignCenter"}, 
    {sClass: "alignCenter"} 
], 
+0

謝謝@JAG的回答。您的解決方案爲表格單元格添加顏色,但在從表格導出數據時,它不會將這些顏色添加到pdf或xls。 – ved

0

要在導出的文件中應用單元格顏色,您需要在自定義方法中添加着色邏輯。

customize: function(xlsx) { 
    var sheet = xlsx.xl.worksheets['sheet1.xml']; 
    //color headers 
    $('row:first c', sheet).attr('s', '42'); 
} 

Adding header cell color

相關問題