这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » jquery+php实现导出datatables插件数据到excel方法及代码

共2条 1/1 1 跳转至

jquery+php实现导出datatables插件数据到excel方法及代码

助工
2020-11-20 10:34:36     打赏

  本文实例讲述了jquery+php实现导出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


  $(tableElm+'thead').find('th').each(function(){


  var$th=$(this);


  vartext=$th.text();


  varheader='"'+text+'"';


  //headers.push(header);//originalcode


  if(text!="")headers.push(header);


  //actuallydatatablesseemstocopymyoriginalheaderssothereistanamountofTHcellswhichareempty


  });


  csv+=headers.join(',')+"\n";


  //gettabledata


  if(exportmode=="full"){//totaldata


  vartotal=oTable.fnSettings().fnRecordsTotal()


  for(i=0;i<total;i++){


  varrow=oTable.fnGetData(i);


  row=strip_tags(row);


  rows.push(row);


  }


  }else{//visiblerowsonly


  $(tableElm+'tbodytr:visible').each(function(index){


  varrow=oTable.fnGetData(this);


  row=strip_tags(row);


  rows.push(row);


  })


  }


  csv+=rows.join("\n");


  //ifacsvpisalreadyopen,deleteit


  if($('.csv-data').length)$('.csv-data').remove();


  //openapwithadownloadlink


  $('body').append('<pclass="csv-data"></p><formenctype="multipart/form-data"method="post"action="/csv.php"><textareaclass="form"name="csv">'+csv+'</textarea><inputtype="submit"class="submit"value="Downloadasfile"></form><p></p>');


  }


  functionstrip_tags(html){


  vartmp=document.createElement("p");


  tmp.innerHTML=html;


  returntmp.textContent||tmp.innerText;


  }


  函数支持导出所有数据和当前页数据


  //exportonlywhatisvisiblerightnow(filters&paginationapplied)


  $('#export_visible').click(function(event){


  varoTable;


  oTable=$('#spdata').dataTable();


  event.preventDefault();


  table2csv(oTable,'visible','#spdata');})


  //exportalltabledata


  $('#export_all').click(function(event){


  varoTable;


  oTable=$('#spdata').dataTable();


  event.preventDefault();


  table2csv(oTable,'full','#spdata');})


  其中#spdata是table的id


  后台php导出excel代码


  header("Content-Type:application/vnd.ms-execl");


  header("Content-Disposition:attachment;filename=myExcel.csv");


  header("Pragma:no-cache");


  header("Expires:0");


  $buffer=$_POST['csv'];


  $buffer=str_replace(",",",\t",$buffer);


  $buffer=mb_convert_encoding($buffer,"GB2312","UTF-8");


  echo$buffer;


  希望本文所述对大家的php程序设计有所帮助。最后想要了解更多关于PHP开发发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂PHP培训IT职业在线学习教育平台为您提供权威的PHP视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的一套PHP视频教程课程,让你快速掌握PHP从入门到精通开发实战技能。扣丁学堂PHP技术交流群:374332265。



工程师
2020-11-20 14:01:04     打赏
2楼

代码写的不错


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]