私人领地

thinkphp 导出exl功能

 

/**
    * 导出数据为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);
    }
}
$m = M ('offer_goods');
        $where['offer_id'] = $id;
           $arr = $m->field('goods_sn,goods_name,barcode,goods_type,price')->select();
        $f = $m->getlastsql();
    
        exportexcel($arr,array('商品货号','商品名称','商品条码','商品属性','报价(RMB)'));

如果导出繁体中文出现空白,请把iconv("UTF-8", "GB2312",$v),改为 iconv("utf-8", "gb2312",$v);

posted @ 2016-06-27 11:45  狂奔的蜗牛Snails  阅读(271)  评论(0编辑  收藏  举报