您的位置:首页 > 编程语言 > PHP开发

php导出数据为excel表格

2015-09-25 18:08 731 查看
在第一个php文件中写一个函数(如:toExcel),吧mysql数据查询出来,为函数exportexcel准备数据,然后调用该函数;

在视图模板中通过url方式,访问第一个php文件中的toExcel函数,自动提示下载;

文件名可自定义,excel表头根据数据列 来自定义;

第一个php文件(用的是onethink程序,语法结构是thinkphp框架):

public function toExcel(){
require_once('excel.php');
$mes = M("Message");
$data = $mes->where('status=1')->order('create_time desc')->select();
for($i=0;$i<sizeof($data);$i++){
$data[$i]['create_time']=date("Y-m-d H:i:s",$data[$i]['create_time']);;
$data[$i]['zongjia']=substr($data[$i]['zongjia'],2)."元";
}

$title = array("序号","订单名称","订单备注","姓名","总价","数量","联系电话","地址","sort","type","状态","下单时间","reply_info");
exportexcel($data,$title,"莱昂".date("Y-m-d H:i:s"));

}

第二个php文件(excel.php):

/**
* 导出数据为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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: