Excel 表格导出功能

思路解析:
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是你对应二维数组的数据 传递过来
改掉里边对应的参数,和表头名称!

猜你喜欢

转载自blog.csdn.net/qq_37899005/article/details/81907160