php mysql excel_PHP 下载mysql数据到PHPExcel表格

/**

* 封装:信息导出

* @param $day

* @param string $tableName

* @throws PHPExcel_Exception

* @throws PHPExcel_Reader_Exception*/

public function Db2Eexcel($data, $tableName = "用户支付数据"){

vendor("PHPExcel.PHPExcel");//1. 实例化工作簿

$excel = new\PHPExcel();//2. 得到前当活动工作表

$sheet = $excel->getActiveSheet();//3. Excel表格式,这里简略写了14列

$letter = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q'];//3.1 表头数组

$tableheader = ['ID','订单创建时间','订单处理时间','支付平台单号','商户订单号','支付类型','支付金额','实际支付金额','银行卡','商品名称','支付状态','游戏支付状态','账号','服务器ID','渠道','子渠道','游戏ID'];//3.2 填充表头信息, 并设置样式

for($i = 0;$i < count($tableheader);$i++) {

$sheet->getCell("$letter[$i]1")->setValue("$tableheader[$i]");

$sheet->getStyle("$letter[$i]1")->getAlignment()->setHorizontal('center'); //统一设置水平居中

$sheet->getStyle("$letter[$i]1")->getAlignment()->setVertical('center'); //统一设置垂直居中

$sheet->getStyle("$letter[$i]1")->getFont()->getColor()->setRGB('b5211a'); //统一设置单元格字段颜色

$sheet->getStyle("$letter[$i]1")->getFont()->setSize(10); //统一设置字体大小

$sheet->getStyle("$letter[$i]")->getFont()->setSize(10);

$sheet->getStyle("$letter[$i]1")->getFont()->setBold(true); //统一设置加粗

$sheet->getColumnDimension("$letter[$i]")->setWidth(20); //统一设置宽度

}//3.3 样式:第1行的高度

$sheet->getRowDimension('1')->setRowHeight(30);//3.4 样式:列的宽度

$sheet->getColumnDimension('A')->setWidth(10);

$sheet->getColumnDimension('B')->setWidth(20);

$sheet->getColumnDimension('C')->setWidth(20);

$sheet->getColumnDimension('D')->setWidth(30);

$sheet->getColumnDimension('E')->setWidth(30);

$sheet->getColumnDimension('F')->setWidth(10);

$sheet->getColumnDimension('G')->setWidth(10);

$sheet->getColumnDimension('H')->setWidth(15);

$sheet->getColumnDimension('I')->setWidth(10);

$sheet->getColumnDimension('J')->setWidth(10);

$sheet->getColumnDimension('K')->setWidth(10);

$sheet->getColumnDimension('L')->setWidth(15);

$sheet->getColumnDimension('M')->setWidth(10);

$sheet->getColumnDimension('N')->setWidth(10);

$sheet->getColumnDimension('O')->setWidth(10);

$sheet->getColumnDimension('P')->setWidth(10);

$sheet->getColumnDimension('Q')->setWidth(20);//4. 填充表格信息

for ($i = 2, $k = 0; $i <= count($data)+1; $i++, $k++) {

$j= 0;//格式化:时间

if(!empty($data[$k]['ftime'])){

$data[$k]['ftime'] = date('Y/m/d H:i:s', $data[$k]['ftime']);

}if(!empty($data[$k]['ptime'])){

$data[$k]['ptime'] = date('Y/m/d H:i:s', $data[$k]['ptime']);

}//格式化:支付类型 1:支付宝 2:微信

if(!empty($data[$k]['paytype'])){if($data[$k]['paytype'] == 1){

$data[$k]['paytype'] = "支付宝";

}if($data[$k]['paytype'] == 2){

$data[$k]['paytype'] = "微信";

}

}//格式化:支付状态1成功0失败

if(isset($data[$k]['paystatus']))

{

$data[$k]['paystatus'] = $data[$k]['paystatus'] == 1 ? "成功" : "失败";

}if(isset($data[$k]['gamepaystatus']))

{

$data[$k]['gamepaystatus'] = $data[$k]['gamepaystatus'] == 1 ? "成功" : "失败";

}foreach ($data[$i - 2] as $key=>$value) {

$sheet->getCell("$letter[$j]$i")->setValue("$value");

$sheet->getStyle("$letter[$j]$i")->getAlignment()->setHorizontal('center');

$j++;

}

}//6. 保存文件:输出到浏览器

$writer = \PHPExcel_IOFactory::createWriter($excel,'Excel2007');

self::browser_export('Excel2007', $tableName.'.xlsx'); //输出到浏览器

$writer->save("php://output");

}/**

* 输出到浏览器

* @param $type

* @param $filename*/function browser_export($type,$filename){if($type=="Excel5"){

header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件

}else{

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;');//告诉浏览器数据excel07文件

}

ob_end_clean();//清除缓存区,避免乱码

header('Content-Disposition: attachment;filename="'.$filename.'"'); //告诉浏览器将输出文件的名称

header('Cache-Control: max-age=0'); //禁止缓存

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值