溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Yii Framework框架中使用PHPExcel組件

發(fā)布時間:2021-03-24 16:11:27 來源:億速云 閱讀:156 作者:Leah 欄目:開發(fā)技術(shù)

怎么在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è)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(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)容。

AI