2015-06-22 22 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

相关问题