您好,登錄后才能下訂單哦!
怎么在Yii Framework框架中使用PHPExcel組件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
將下載的PHPExcel壓縮包解壓到Y(jié)ii Framework目錄framework\vendors下
代碼如下
/** * 將數(shù)據(jù)導(dǎo)出到Excel */ public function actionExport() { //取要導(dǎo)出到Excel的數(shù)據(jù) $criteria = $this->_getCriteria(); $data = Statistics::model()->findAll($criteria); // 獲取PHPExcel引用路徑 $phpExcelPath = Yii::getPathOfAlias('system.vendors'); // 關(guān)閉YII的自動加載功能,改用手動加載,否則會出錯,PHPExcel有自己的自動加載功能 // YII框架對于組件的自動加載,要求類名與文件名一致; // 而PHPExcel類對應(yīng)的文件名包含了上級目錄名稱,如:IOFactory類對應(yīng)的文件名為PHPExcel_IOFactory.php spl_autoload_unregister(array('YiiBase','autoload')); include($phpExcelPath . DIRECTORY_SEPARATOR . 'PHPExcel.php'); //下面是Excel數(shù)據(jù)導(dǎo)出處理邏輯 $objPHPExcel = PHPExcel_IOFactory::load('./content/template/report.xlsx'); $objPHPExcel->getProperties()->setCreator("Kalman") ->setTitle("統(tǒng)計報表") ->setSubject("統(tǒng)計報表") ->setDescription("統(tǒng)計報表"); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'Hello') ->setCellValue('B2', 'world!') ->setCellValue('C1', 'Hello') ->setCellValue('D2', 'world!'); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A25', '123456'); $objPHPExcel->getActiveSheet()->setTitle('report'); // Excel打開后顯示的工作表 $objPHPExcel->setActiveSheetIndex(0); //通瀏覽器輸出Excel報表 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="report.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); Yii::app()->end(); //恢復(fù)Yii自動加載功能 spl_autoload_register(array('YiiBase','autoload')); }
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。