Dwz与thinkphp整合下的数据导出到Excel实例 |
本文实例讲述了Dwz与thinkphp整合下的数据导出到Excel的方法 。分享给大家供大家参考 。具体方法如下: 这个问题困扰了我很久,终于还是自己写JQUERY把它搞掂了,希望能对遇到同样问题的人有所帮助,好吧,下面就是源代码: jquery代码如下: 复制代码 代码如下: $(function(){ //_getIds方法就是获取已选的要导出的数据的ID,设了两个参数selectedIds--已选id的input名称,targetType-->碎片模式,默认是navTab,如果是dialog的自行修改 function _getIds(selectedIds,targetType){ var ids=""; var $box=targetType=="dialog"?$.pdialog.getCurrent():navTab.getCurrentPanel(); $box.find("input:checked").filter("[name="+selectedIds+"]").each(function(i){ var val=$(this).val(); ids+=i==0?val:","+val;}); return ids; } //导出excel的按钮 class=iconn,click时触发 $(".iconn").click( function(){ //因为这个方法直运用到导出到excel 所以这里所需的参数变量我直接写死了 var targetType="navTab"; var selectedIds="ids"; var postType="string";//批量选择的话,以文本的形式获取 var ids=_getIds(selectedIds,targetType); if(!ids){ alertMsg.error($(".iconn").attr("warn")); return false; //alert("请选择要导出的数据!"); }else{ //将获取到的ids 传给后台处理 window.open("__URL__/memberExport/ids/"+ids); } }); }); PHP代码如下: 复制代码 代码如下: //member成员信息导出到excel
public function memberExport(){ $id=$_REQUEST[ids];//获取已选数据的ID //echo $id; //在这里导出到excel我没有用到phpexcel,是自己写的,很简单,相信大家都明白是什么意思,根据自己需要自行修改就行了 $filename=date(Y-m-d); header("Pragma:public"); header("Expires:0"); header("Cache-Control:must-revalidate,post-check=0,pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/vnd.ms-execl;charset=gb2312"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header(Content-Disposition:attachment;filename=".$filename..xls"); header("Content-Transfer-Encoding:binary"); if(!$id){ $this->error(非法操作!); }else{ $map[id]=array(in,$id); $title="用户名\t 姓名\t 部门\t 职务\t 身份证\t 职称\t 学历\t 毕业时间\t 录用时间"; $title=iconv(utf-8,gbk,$title); echo $title; set_time_limit(0); $offset= 0; $length=100; $Member = M(Member); $list=$Member->where($map)->order(id desc)->select(); if(!$list){ $this->error(操作错误!); }else{ foreach($list as $key=>$row){ echo "\n"; echo iconv(utf-8,gbk,$row[username])."\t"; echo iconv(utf-8,gbk,$row[name])."\t"; echo iconv(utf-8,gbk,$row[department])."\t"; echo iconv(utf-8,gbk,$row[zhiwu])."\t"; echo iconv(utf-8,gbk,$row[sfz])."\t"; echo iconv(utf-8,gbk,$row[zhicheng])."\t"; echo iconv(utf-8,gbk,$row[xueli])."\t"; echo iconv(utf-8,gbk,$row[bytime])."\t"; echo iconv(utf-8,gbk,$row[lytime])."\t"; } $offset+=$length; } } } 希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助 。 |