thinkphp5 PhpSpreadsheet 的 excel數據導出

先貼代碼

public function excel_table_info(){
        $res = $this->_excel->excel_table_info();    //需導出的數據

        if($res){
            $spreadsheet = new  Spreadsheet();       //new一個對象(適合單身的我。。。)

            //說明以下內容只是excel第一個sheet頁的屬性設置
            $builder = $spreadsheet->setActiveSheetIndex(0);
            //定義標籤欄,
            $builder->setCellValue('A1', '表名');
            $builder->setCellValue('B1', '資源名稱');
            $builder->setCellValue('C1', '來源部門');
            $builder->setCellValue('E1', '主題域');
            $builder->setCellValue('F1', '子域');
            //建議在數據表或者公共函數中定義標籤欄編號和名稱,foreach循環定義
//            foreach ($data as $v) {
//                $builder->setCellValue($v['key'], $v['name']);
//            }

            //設置A欄數據內容寬度自適應(這個有問題,我同時設置多欄時,不好使)
            $builder->getColumnDimension( 'A')->setAutoSize(true);   

            $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(130);    //設置寬度
            //excel的具體數據,第一行爲標題,數據從第二行開始
            foreach ($res as $key=>$val) {
                $key = $key + 2;
                    $spreadsheet->getActiveSheet()
                    ->setCellValue('A'.$key, $val['table_name'])
                    ->setCellValue('B'.$key, $val['zymc'])
                    ->setCellValue('C'.$key, $val['lybm'])
                    ->setCellValue('D'.$key, $val['zty'])
                    ->setCellValue('E'.$key, $val['zy']);
//                    ->setCellValue('E'.$key, 1);      //設置默認值
            }
            //定義sheet頁名稱
            $spreadsheet->getActiveSheet()->setTitle('sheet頁名稱');
            //定義導出的excel文件名
            $filename = '公安數據.xlsx';
            //當導出的excel有多個sheet頁,默認顯示第一頁
            $spreadsheet->setActiveSheetIndex(0);

            //後面的是默認的內容,能不能改,怎麼改 還不清楚
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            header('Content-Disposition: attachment;filename="'.$filename.'"');
            header('Cache-Control: max-age=0');

            $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
            //下載文檔
            $writer->save('php://output');
        }
    }

先這樣,後面瞭解更多,再來新修改!求大佬指教!!!

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