思路解析:
1. 原理是一些内置的系统参数,和一些数据匹配。
2. 用你的数据匹配到对应的字段,类似于调取第三方接口一样,参数配置好就行
(详细的内置函数不是很理解,但是能实此功能!)
封装一个方法
//数据导出Excel功能
public static function export($data){
error_reporting(0);
//新建对象
$resultPHPExcel = new PHPExcel();
$resultPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', '宋体'));
//设置参数
$resultPHPExcel->getActiveSheet()->setCellValue('A1', '日期');
$resultPHPExcel->getActiveSheet()->setCellValue('B1', '消费');
$resultPHPExcel->getActiveSheet()->setCellValue('C1', '报名');
$resultPHPExcel->getActiveSheet()->setCellValue('D1', '平均成本');
$resultPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(18);
$resultPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(13);
$resultPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(13);
$i = 2;
//拿到数据 进行循环遍历 对应Excel的对应框位置输出数据
foreach($data as $key => $item){
$item['live_area'] = str_replace('$$','',$item['live_area']);
if($key == "zj"){
$key ="总计";
}
$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $key);
$resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['sl_balance']);
$resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['order_num']);
$resultPHPExcel->getActiveSheet()->setCellValue('D' . $i, $item['cost']);
$i ++;
}
//设置导出文件名
$outputFileName = 'total.xls';
$xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
ob_end_clean();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$xlsWriter->save("php://output");
}
data是你对应二维数组的数据 传递过来
改掉里边对应的参数,和表头名称!