首页 > PHP专栏 > PHP导出excel表格示例
2016
03-16

PHP导出excel表格示例

方法一:适合单独导出

$filename='提现列表-' . date('Ymd',time());
header("Content-type: application/vnd.ms-excel; charset=gbk");
header("Content-Disposition: attachment; filename=$filename.xls");

$payment    = trim($_POST['payment']); //提现方式
$status     = trim($_POST['status']);  //提现状态
$start_time = strtotime($_POST['start_time']); //申请时间-开始时间点
$end_time   = strtotime($_POST['end_time']); //申请时间-开始时间点

$where = 'WHERE 1 ';

/* 提现方式 */
if(!empty($payment)){
	$where .= " AND bank_name LIKE '%" . $payment . "%' "; 
}

/* 提现状态 */
if ($status >0){
	$where .= " AND status = '$status' ";
}
/* 申请时间 */
if(!empty($start_time) && empty($end_time)){
	$where .= " AND apply_time > '$start_time' ";
}elseif(!empty($start_time) && !empty($end_time)){
	$where .= " AND apply_time > '$start_time' AND apply_time<= '$end_time' ";
}

/* 查询数据 */
$sql  = 'SELECT * FROM ·user_cash_money· '. $where . " ORDER BY apply_time DESC";
$res=$db->getAll($sql);
$list = array();
foreach($res as $key => $rows){
	$list[$key]['user_name']     = $rows['user_name'];
	$list[$key]['cash_money']    = $rows['cash_money'];
	$list[$key]['bank_name']     = $rows['bank_name'];
	$list[$key]['bank_account']  = $rows['bank_account'];
	$list[$key]['true_name']     = $rows['true_name'];
	$list[$key]['status']        = $rows['status']==1? '待处理' : '提现成功';
	$list[$key]['complete_time'] = empty($rows['complete_time'])?'':date('Y-m-d H:i:s', $rows['complete_time']);
	$list[$key]['apply_time']    = empty($rows['apply_time'])?'':date('Y-m-d H:i:s', $rows['apply_time']);
}

$data = "<table border='1'>";
$data .= "<tr bgcolor='#DDDDDD'><th>序号</th><th>会员名称</th><th>支付方式</th><th>支付帐号</th><th>收款人姓名</th><th>提现金额</th><th>提现状态</th><th>处理时间</th><th>申请时间</th></tr>";	
foreach($list as $key => $val){
	$data .= "<tr align='center'><td>".($key+1)."</td><td>".$val['user_name']."</td><td>".$val['bank_name']."</td><td>".$val['bank_account']."</td><td>".$val['true_name']."</td><td>".$val['cash_money']."</td><td>".$val['status']."</td><td>".$val['complete_time']."</td><td>".$val['apply_time']."</td></tr>";
}
$data .= "</table>";

if (EC_CHARSET != 'gbk'){
	echo ecs_iconv(EC_CHARSET, 'gbk', $data) . "\t";
}
else{
	echo $data. "\t";
}


方法二:适合多个方法调用该导出方法

//导出excel文件方法
protected 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 ."-".date('Ymd',time()). ".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)) {
		$totalprice = 0;
		foreach ($data as $key => $val) {
			foreach ($val as $ck => $cv) {
				$data[$key][$ck] = iconv("UTF-8", "GB2312", $cv);
			}
			$data[$key] = implode("\t", $data[$key]);
			$totalprice += $val['amount'];
		}
		$data[count($data)] = iconv("UTF-8", "GB2312", "总人数:".count($data));
		$data[count($data)+1] = iconv("UTF-8", "GB2312", "总金额:".$totalprice."元");
		echo implode("\n", $data);
	}
}
//调用导出excel表格方法
if($_GPC['out_put']=='output'){
	$i = 0;
	foreach ($details_list as $key => $value) {
		$arr[$i]['nickname']         = $value['nickname'];
		$arr[$i]['openid']           = $value['openid'];
		$arr[$i]['amount']           = $value['amount']>0?$value['amount']:'未中奖';
		$arr[$i]['status']           = $value['status']==1?'发放成功':'发放失败';
		$arr[$i]['partner_trade_no'] = $value['partner_trade_no'];
		$arr[$i]['payment_no']       = $value['payment_no'];
		$arr[$i]['add_time']         = date('Y-m-d H:i:s', $value['add_time']);
		$i++;
	}

	$this->exportexcel($arr, array('用户昵称', '用户openid', '红包金额', '发放状态', '商户订单号', '微信订单号', '发放时间'), $details['active_name']);
	exit();
}



留下一个回复