php 导出为excel表格

<?php

/**
*@导出excel 
* @$data(二维数组) 传来的数据,$field(关联一维数组)字段, $name(string) 表的名称
*/
function excel($data,$field,$name=''){
    if(empty($name)){
        $time = date('Y年m月d日',time());
        $name= $time.'导出数据';
    }
    if(!is_array($data) || !is_string($name)){
        return false;
    }else if(count($field) !== count($field, 1)){
        return false;
    }else if(count($data) == count($data, 1)){
         return false;
    }else{
        //二维数组操作
          $td='';$th='';
          foreach ($data as $key=>$val) {
            $td.='<tr>';
            foreach ($field as $k => $v) {
                if(!$key){
                    $th.='<th style="vnd.ms-excel.numberformat:@">'.$v.'</th>';;
                }
                $td.='<td style="vnd.ms-excel.numberformat:@">'.$val[$k].'</td>';
            }
            $td.='</tr>';
          }
    }
    header("Pragma: public");
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition: inline;filename=".$name.".xls");
    return '<meta http-equiv=\'Content-Type\' content=\'text/html; charset=UTF-8\' /><table table border=\'1\' width=\'50%\' ><tr><th colspan="'.count($field).'">'.date('Y年m月d日',time()).'导出数据</th></tr><tr>'.$th.'</tr>'.$td.'</table>'; 
}


//示例
$result=[
    '0'=>[
    'id'=>1,
    'name'=>'小张',
    'sex'=>'男',
    'ege'=>'27'
 ]]
;
$field=[
    'id'=> 'ID',
    'name'=> '姓名',
    'sex'=> '性别',
    'ege'=> '年龄'
];

echo excel($result,$field,'下载');


















猜你喜欢

转载自blog.csdn.net/weixin_45609681/article/details/103732083