任何人都可以帮助我在Excel和PDF中下载Jquery Datatable数据

时间:2014-11-29 17:01:33

标签: javascript jquery ajax datatables jquery-datatables

我是jQuery的新手,需要在JQuery Datatable中实现Excel和PDF中的数据下载功能。

Datatable已经实现,只有我需要实现下载数据功能。

我用谷歌搜索了它,却无法找到更好的文章来更好地解释事物。

以下是供参考的代码。

HTML:

<table class="table table-bordered" data-table-name="pqe-contact-dom"></table> 

在HTML中,我们使用data-table-name = “pqe-contact-dom”将数据填充到表中,数据表代码用JS文件编写。

JS文件代码:

var reportFunction = function(code) {   
    $.ajax({
                type : 'get',
                url : url,
                dataType : 'json',
                success : function(data) {
                var reportArray = new Array();
                    var reportArrayLen = data.length;


                    for (var l = 0; l < reportArrayLen; l++) {

                            reportArray[l] = new Array();
                            var code = data[l].CODE;
                            var name = data[l].NAME;
                            var e_name = data[l].E_Name;
                            var e_phone = data[l].E_Phone;
                            var e_email = data[l].E_eMail;


                            reportArray[l][0]= supplier_code;
                            reportArray[l][1] = supplier_name;
                            reportArray[l][2] = e_name;
                            reportArray[l][3] = e_phone;
                            reportArray[l][4] = e_email;

                        }   
                        var reportArrayVar = reportArray;
                        gotoReport( reportArrayVar ); //Calling below the function that  datatable and     //passing data array to populate data
                },
                error : function() {
                    alert("ajax error");
                }
                    });

};


//This function will populate the data to the datatable

function gotoReport(reportArrayVar){    

require( [ 'jquery', 'datatables', 'prettify', 'bootstrap'], function(jQuery) 
{ jQuery('table[data-table-name="nonqmreports-dt"]').DataTable(
/* options */{
    //useFloater : false


                useFloater : false,
                'aoColumns' : [ 
                {'sTitle' : 'Code', 'sClass' : 'essential'}, //essential
                {'sTitle' : 'Name ', 'sClass' : 'optional' },
                {'sTitle' : 'E Name', 'sClass' : 'essential'},
                {'sTitle' : 'E Phone', 'sClass' : 'essential'},
                {'sTitle' : 'E eMail ', 'sClass' : 'optional' }

                ],
                'aaData': reportArrayVar,
                'bProcessing': true,
                'isResponsive' : true,
                 'bDestroy': true,
                  'bRetrieve': false,
                'bPaginate':true,
                // 'bStateSave': true,
                 'bInfo': true,
                'sPaginationType': 'full_numbers'


})
});  

}

在此我需要实现数据下载到Excel和PDF功能,但我不清楚如何做到这一点。任何人都可以帮我理解如何去做吗?

2 个答案:

答案 0 :(得分:0)

首先, 这应该出现在你的JS代码中[忽略引号中的标签]

"dom": '<"pad5"CT><"clear"><lf<"clear">r<t>ip>',<br>
tableTools: {
  "sSwfPath": "assets/swf/copy_csv_xls_pdf.swf"
}

接下来你需要这个文件。 copy_csv_xls_pdf.swf [确保路径是根据初始化的html / php文件]

接下来检查控制台f12是否有错误并发布错误 并提到您的DataTable版本和Jquery版本是最新的

享受

答案 1 :(得分:0)

首先在TableTool插件文件夹中找到&#34; copy_csv_xls_pdf.swf&#34; 文件的本地路径,并为&#34; sSwfPath使用相同的路径:&#34 ; 就像我在下面提到的那样:

require(['jquery', 'datatables', 'prettify', 'bootstrap'], function (jQuery) {
    jQuery('table[data-table-name="nonqmreports-dt"]').DataTable(
    /* options */
    {
        //useFloater : false

        useFloater: false,
            'aoColumns': [{
            'sTitle': 'Code',
            'sClass': 'essential'
        }, //essential
        {
            'sTitle': 'Name ',
            'sClass': 'optional'
        }, {
            'sTitle': 'E Name',
            'sClass': 'essential'
        }, {
            'sTitle': 'E Phone',
            'sClass': 'essential'
        }, {
            'sTitle': 'E eMail ',
            'sClass': 'optional'
        }

        ],
            'aaData': reportArrayVar,
            'bProcessing': true,
            'isResponsive': true,
            'bDestroy': true,
            'bRetrieve': false,
            'bPaginate': true,
        // 'bStateSave': true,
        'bInfo': true,
        `enter code here`
            'sPaginationType': 'full_numbers',
            "tableTools": {
            "sSwfPath": "/Scripts/TableTools-2.2.0/media/swf/copy_csv_xls_pdf.swf" // path where swf files is located.
        }
    })
});