php導出表格數據

0.基本配置

百度雲鏈接
密碼: m7ch
將配置文件放置在vendor目錄下

1.創建數據

public function create_export0($list,$val){
        $list =[]; //數據
        $val=‘’;  //類型
        $this->createReport($list,$val);
}

2.創建表格

public function createReport($list,$val)
    {
    //標題名稱
        $expCellName = [
            ['0', '用戶名稱', 'name'],  //name爲$list的鍵名
            ['1', '參與時間', 'addtime'],
           ......
        ];

        $count =count($list);   //總條數
        if ($val=='1'){
            $str ='本次統計共:'.$count.' 條 '.',統計範圍:1';
        }elseif ($val=='2'){
            $str ='本次統計共:'.$count.' 條 '.',統計範圍:2';
        }else{
            $str ='本次統計共:'.$count.' 條 '.'統計範圍:3';
        }
        $this->excel3($expCellName, $list, $str);
}

3.導出表格

        $xlsTitle = iconv('utf-8', 'gb2312', '');
        $fileName = date('數據統計_Ymd');// 文件名稱
        $cellNum = count($expCellName);
        $dataNum = count($expTableData);

        Vendor("PHPExcel.PHPExcel");
        $objPHPExcel = new \PHPExcel();
        $cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I','J');
        $objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合併單元格
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $str);
        for ($i = 0; $i < $cellNum; $i++) {
            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '2', $expCellName[$i][1]);
        }
        if ($dataNum > 0) {
            //邏輯區
            for ($i = 0; $i < $dataNum; $i++) {
                for ($j = 0; $j < $cellNum; $j++) {
                    $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 3), $expTableData[$i][$expCellName[$j][2]]);
                }
            }
        }
        ob_end_clean();//清除緩衝區,避免亂碼
        header('pragma:public');
        header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
        header("Content-Disposition:attachment;filename=$fileName.xls");
        //attachment新窗口打印inline本窗口打印
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章