jqueryphp导出datatables插件到excel
本文实例讲述了jqueryphp实现导出datatables插件数据到excel的方法。分享给大家供大家参考。具体如下:
DataTables是一个jQuery的表格插件。这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格。主要特点:
1。自动分页处理
2。即时表格数据过滤
3。数据排序以及数据类型自动检测
4。自动处理列宽度
5。可通过CSS定制样式
6。支持隐藏列
7。易用
8。可扩展性和灵活性
9。国际化
10。动态创建表格
不过可惜的是官方网站表格数据导出方法使用的是tabletools插件,利用flash导出数据,而且不支持中文数据,通过查找官方的API和资料,找到使用jquery和php导出数据方法。
导出数据的javascript函数
functiontable2csv(oTable,exportmode,tableElm){
varcsv;
varheaders〔〕;
varrows〔〕;
Getheadernames
(tableElmthead)。find(th)。each(function(){
varth(this);
vartextth。text();
varheadertext;
headers。push(header);originalcode
if(text!)headers。push(header);
actuallydatatablesseemstocopymyoriginalheaderssothereistanamountofTHcellswhichareempty
});
csvheaders。join(,);
gettabledata
if(exportmodefull){totaldata
vartotaloTable。fnSettings()。fnRecordsTotal()
for(i0;itotal;i){
varrowoTable。fnGetData(i);
rowstriptags(row);
rows。push(row);
}
}else{visiblerowsonly
(tableElmtbodytr:visible)。each(function(index){
varrowoTable。fnGetData(this);
rowstriptags(row);
rows。push(row);
})
}
csvrows。join();
ifacsvpisalreadyopen,deleteit
if((。csvdata)。length)(。csvdata)。remove();
openapwithadownloadlink
(body)。append(pclasscsvdata
);
}
functionstriptags(html){
vartmpdocument。createElement(p);
tmp。innerHTMLhtml;
returntmp。textContenttmp。innerText;
}
函数支持导出所有数据和当前页数据
exportonlywhatisvisiblerightnow(filterspaginationapplied)
(exportvisible)。click(function(event){
varoTable;
oTable(spdata)。dataTable();
event。preventDefault();
table2csv(oTable,visible,spdata);})
exportalltabledata
(exportall)。click(function(event){
varoTable;
oTable(spdata)。dataTable();
event。preventDefault();
table2csv(oTable,full,spdata);})
其中spdata是table的id
后台php导出excel代码
header(ContentType:applicationvnd。msexecl);
header(ContentDisposition:attachment;filenamemyExcel。csv);
header(Pragma:nocache);
header(Expires:0);
bufferPOST〔csv〕;
bufferstrreplace(,,,,buffer);
buffermbconvertencoding(buffer,GB2312,UTF8);
echobuffer;
希望本文所述对大家的php程序设计有所帮助。最后想要了解更多关于PHP开发发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂PHP培训IT职业在线学习教育平台为您提供权威的PHP视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的一套PHP视频教程课程,让你快速掌握PHP从入门到精通开发实战技能。扣丁学堂PHP技术交流群:374332265。