>백엔드 개발 >PHP 튜토리얼 >Thinkphp将表格的数据导出到excel文件

Thinkphp将表格的数据导出到excel文件

WBOY
WBOY원래의
2016-06-23 14:00:321039검색

Thinkphp将表格的数据导出到excel文件


回复讨论(解决方案)

/**	    * 导出数据为excel表格	    *@param $data    一个二维数组,结构如同从数据库查出来的数组	    *@param $title   excel的第一行标题,一个数组,如果为空则没有标题	    *@param $filename 下载的文件名	    *@examlpe 	    $stu = M ('User');	    $arr = $stu -> select();	    exportexcel($arr,array('id','账户','密码','昵称'),'文件名!');	*/	 function exportexcel($data=array(),$title=array(),$filename='report'){	    header("Content-type:application/octet-stream");	    header("Accept-Ranges:bytes");	    header("Content-type:application/vnd.ms-excel");  	    header("Content-Disposition:attachment;filename=".$filename.".xls");	    header("Pragma: no-cache");	    header("Expires: 0");	    //导出xls 开始	    if (!empty($title)){	        foreach ($title as $k => $v) {	            $title[$k]=iconv("UTF-8", "GB2312",$v);	        }	        $title= implode("\t", $title);	        echo "$title\n";	    }	    if (!empty($data)){	        foreach($data as $key=>$val){	            foreach ($val as $ck => $cv) {	                $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv);	            }	            $data[$key]=implode("\t", $data[$key]);	            	        }	        echo implode("\n",$data);	    }	 }

/**	    * 导出数据为excel表格	    *@param $data    一个二维数组,结构如同从数据库查出来的数组	    *@param $title   excel的第一行标题,一个数组,如果为空则没有标题	    *@param $filename 下载的文件名	    *@examlpe 	    $stu = M ('User');	    $arr = $stu -> select();	    exportexcel($arr,array('id','账户','密码','昵称'),'文件名!');	*/	 function exportexcel($data=array(),$title=array(),$filename='report'){	    header("Content-type:application/octet-stream");	    header("Accept-Ranges:bytes");	    header("Content-type:application/vnd.ms-excel");  	    header("Content-Disposition:attachment;filename=".$filename.".xls");	    header("Pragma: no-cache");	    header("Expires: 0");	    //导出xls 开始	    if (!empty($title)){	        foreach ($title as $k => $v) {	            $title[$k]=iconv("UTF-8", "GB2312",$v);	        }	        $title= implode("\t", $title);	        echo "$title\n";	    }	    if (!empty($data)){	        foreach($data as $key=>$val){	            foreach ($val as $ck => $cv) {	                $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv);	            }	            $data[$key]=implode("\t", $data[$key]);	            	        }	        echo implode("\n",$data);	    }	 }

$date $title $filename是前台页面传过来的值吗

你前台传过来的值 最好是经过后台的处理 再调用这个方法 传参数

学习了,不错

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.