//瀏覽器輸出excel header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="dzg_card_info.xlsx"'); header('Cache-Control: max-age=0'); $this->load->library('PHPExcel'); //加載類庫,其他框架可以使用require_one $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //設置第一個工作表為活動工作表 $objPHPExcel->getActiveSheet()->setTitle('card_info'); //設置工作表名稱 //為單元格賦值 //方法①:直接設置單元格的值 /* $objPHPExcel->getActiveSheet()->setCellValue('A1', 'PHPExcel'); $objPHPExcel->getActiveSheet()->setCellValue('A2', 12345.6789); $objPHPExcel->getActiveSheet()->setCellValue('A3', TRUE); */ //方法②:二維數組 $arrHeader = array(['id', '名字', '技能', '創建時間']); $arrAllCardInfo = $this->admin_model->getAllCardInfo(); //二維數組 $arrExcelInfo = array_merge($arrHeader, $arrAllCardInfo); $arrExcelInfo = eval('return ' . iconv('gbk', 'utf-8', var_export($arrExcelInfo, true)) . ';'); //將數組轉換成utf-8 $objPHPExcel->getActiveSheet()->fromArray( $arrExcelInfo, // 賦值的數組 NULL, // 忽略的值,不會在excel中顯示 'A1' // 賦值的起始位置 ); //創建第二個工作表 $msgWorkSheet = new PHPExcel_Worksheet($objPHPExcel, 'card_message'); //創建一個工作表 $objPHPExcel->addSheet($msgWorkSheet); //插入工作表 $objPHPExcel->setActiveSheetIndex(1); //切換到新創建的工作表 $arrHeader = array(['id', 'uid', '描述']); $arrBody = $this->admin_model->getAllCardMsg(); $arrExcelInfo = array_merge($arrHeader, $arrBody); $arrExcelInfo = eval('return ' . iconv('gbk', 'utf-8', var_export($arrExcelInfo, true)) . ';'); //將數組轉換成utf-8 $objPHPExcel->getActiveSheet()->fromArray( $arrExcelInfo, // 賦值的數組 NULL, // 忽略的值,不會在excel中顯示 'A1' // 賦值的起始位置 ); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); $objWriter->save('php://output'); $objPHPExcel->disconnectWorksheets(); unset($objPHPExcel);