徐向博 / Imin.

php生成Excel文件
作者:Imin 时间:2018-03-07 分类: PHP

最近在做一个新的ERP,有一个需求要把客户信息导出Excel,参考百度来的代码,简单修改并且完善一下注释,分享一下。

程序的重点在于定义页面输出格式:在php header()中定义header("Content-type:application/vnd.ms-excel");

<?php
//设置时区,否则会有安全提示  
date_default_timezone_set('Asia/shanghai');  

function createExcel($content,$fileName,$header = array(),$key = array()){    
  
    //定义http头为excel文件  
    header("Content-type:application/vnd.ms-excel");  
   
    //定义文件名,$fileName参数  
    header("Content-Disposition:filename=".$fileName.".xls");   

    //创建excel标题   
    $excelHeader = implode("\t",$header);    

    //创建表格,此时表格里只有标题  
    $strExport = $excelHeader."\r";   

    //往表格里添加内容  
    foreach ($content as $row){      
        foreach($key as $val){  
            $strExport.=$row[$val]."\t"; //添加一个单元格    
        }    
        $strExport.="\r"; //添加一行  
    }     

    //设置文件编码  
    $strExport=iconv('UTF-8',"GB2312//IGNORE",$strExport);  
   
    //输出内容并退出函数   
    exit($strExport);         
}     

//要输出的数据,每个子数组代表一行,$content的键必须和$key一一对应  
$content = array(  
    array(  
        'name' => 'imin',  
    'id' => '1',  
    'num' => '156'  
    ),  
    array(  
    'name' => 'xxb',  
    'id' => '2',  
    'num' => '180'  
    )  
);  

//文件名  
$fileName = '提现记录'.date('YmdHis');   

//表格头   
$header = array('姓名','编号','联系电话');    

//表格头的代码,和$header一一对应  
$key = array('name','id','num');    

//执行程序  
createExcel($content,$fileName,$header,$key);    
?> 

输出的文件,打开后会出现乱码提示,强迫症患者请自行百度解决办法。