首页 文章

使用单元格颜色导出jQuery数据表数据

提问于
浏览
2

我正在使用不同格式的TableTools从jQuery数据表导出数据,如excel,pdf . 某些单元格在数据表中具有不同的背景颜色 . 但是这些颜色不会在导出的excel或pdf中显示 . 谁能告诉我,如何解决这个问题?

这是datatable的代码:

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');
                }
            }
});

2 回答

  • 0

    我不确定,但看起来你在 TR 完全创建后着色 TDs 所以试试这个 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

    要在导出的文件中应用单元格颜色,您需要在customize方法中添加着色逻辑 .

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

    Adding header cell color

相关问题