天天看點

原生php+phpexcel導出資料

require_once('PHPExcel.php');
/*filename:檔案    headArr:第一行标頭    data:二維數組資料*/
function excelExport($fileName = '', $headArr = [], $data = []) {

        $fileName .= ".xls";
        
        $objPHPExcel = new \PHPExcel();

        $objPHPExcel->getProperties();

        $key = ord("A"); // 設定表頭

        foreach ($headArr as $v) {

            $colum = chr($key);

            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);

            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);

            $key += 1;
        }
        
        $column = 2;

        $objActSheet = $objPHPExcel->getActiveSheet();

        foreach ($data as $key => $rows) { // 行寫入
            $span = ord("A");

            foreach ($rows as $keyName => $value) { // 列寫入
                $objActSheet->setCellValue(chr($span) . $column, $value);

                $span++;
            }

            $column++;
        }

        $fileName = iconv("utf-8", "gb2312", $fileName); // 重命名表

        $objPHPExcel->setActiveSheetIndex(0); // 設定活動單指數到第一個表,是以Excel打開這是第一個表
        ob_end_clean();
        header('Content-Type: application/vnd.ms-excel;');

        header("Content-Disposition: attachment;filename='$fileName'");

        header('Cache-Control: max-age=0');

        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

        $objWriter->save('php://output'); // 檔案通過浏覽器下載下傳

        exit();
    }