phpexcel 是一個可以讓 php 簡單的對 excel 進行匯入匯出的套件

但是CodeIgniter 自己就沒有這麼方便的功能,透過載入第三方的函數庫

讓CodeIgniter 可以使用phpexcel

 

1.請先上 PHPExcel 下載Lib
https://phpexcel.codeplex.com/

2.解壓縮以後把 Classes 資料夾底下的檔案都複製到 application\third_party 裡面
我習慣在裡面再一個目錄分類,以防止放太多第三方元件導致混亂
phpexcel_2.png

3.去 libraries 資料夾建立一個 excel.php 的檔案,內容如下:

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH."/third_party/PHPExcel/PHPExcel.php";

class Excel extends PHPExcel {
    public function __construct() {
        parent::__construct();
    }
}

當中 require_one後面接的地方,要看你自己,我是有再多建一層目錄,所以這個部分你要自己注意。

 

完成上述的動作,表示你已經可以使用了。

可以在Control中建立範例程式。

$this->load->library('excel');
        $objPHPExcel = new PHPExcel();
        $objPHPExcel->setActiveSheetIndex(0);
        $objPHPExcel->getActiveSheet()->setCellValue('A1', '中文');
        $objPHPExcel->getActiveSheet()->setCellValue('B2', '許');
        $objPHPExcel->getActiveSheet()->setCellValue('C3', 'test3');
        $objPHPExcel->getActiveSheet()->setCellValue('D3', 'test4');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="att_report_' . date('dMy') . '.xlsx"');
        header('Cache-Control: max-age=0');

        $objWriter->save('php://output');

要注意,如果你Excel選Excel2007隔式,副檔名要改成xlsx。
如果你格式選擇Excel2007,但是副檔名用xls,再office2003 開啟會出現錯誤。
 

 

, ,

expect7 發表在 痞客邦 PIXNET 留言(0) 人氣()