我是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功能,但我不清楚如何做到这一点。任何人都可以帮我理解如何去做吗?
答案 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.
}
})
});