php导出xls文件实例

<?php

$db_tbl = "user";
$filename = '用户导出_'.date('Ymd_His');
$filename=iconv("UTF-8", "GB2312//IGNORE", $filename);

header("Content-Type: text/csv;charset=gb2312");
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");

$title = array('序号','姓名','手机','证件','积分','地址','注册时间','关注场景');

if (!empty($title)){
    print_title($title);
}

$wherestr = " WHERE 1=1 ";
$datafrom = $db_tbl;
$taxis = " order by id desc";
$selectsql = "*";
$q = $_GET['q'];
$q['scene_id'] = intval($q['scene_id']);
if($q) {
 foreach($q as $k=>$v){
     if(!$v) continue;
     $v = trim($v);
     switch($k){
        case 'date_from':
            $wherestr .= " and subscribe_time >= '{$v}' ";$page_param .= "&q[{$k}]={$v}";
        break;
        case 'date_to':
            $wherestr .= " and subscribe_time < '{$v}' ";$page_param .= "&q[{$k}]={$v}";
        break;
        case 'scene_id':
            $wherestr .= " and {$k} = '{$v}' ";$page_param .= "&q[{$k}]={$v}";
        break;
        default:
            $wherestr .= " and {$k} like '%{$v}%' ";$page_param .= "&q[{$k}]={$v}";
        break;
     }
 }
}

//所有的场景列表
$scene = array('-');
$sql = "select * from t_scene";
$rs = $dbc->select($sql);
foreach($rs as $v){
    $scene[$v['id']] = $v['title'];
}

$sql = 'select * from '.$datafrom.$wherestr.$taxis;
$sql .= ' LIMIT 10000 ';
$q = $dbc -> query($sql);
while($rs = $dbc -> fetch_array($q)) {
    $data[0] = array($rs['id'],$rs['nm'],$rs['tel'],$rs['sn'],$rs['points'],$rs['addr'],$rs['cdate'],$scene[$rs['scene_id']]);
    print_data($data);
}
?>

有话要说