使用 CodeIgniter 輸出 Excel
最近有一個需求是要把網站的資料用 Excel 輸出,我平常慣用的 CodeIgniter 沒有內建這個功能,還好查了一下還是有人寫好了方便的工具,要使用的話首先下載 PHPExcel Library。
接著依以下步驟:
步驟一: 解開壓縮檔後把 third_party 整包複製到你的 CI 專案裡相同的位置。
步驟二: 在 application/libraries 建立一個新的 Excel.php 的檔案
步驟三: 請先準備好資料庫,然後讀取 library
步驟四: 接這參考下面這段程式把資料輸出即可
參考資料來源: Export Data to Excel using Codeigniter
接著依以下步驟:
步驟一: 解開壓縮檔後把 third_party 整包複製到你的 CI 專案裡相同的位置。
步驟二: 在 application/libraries 建立一個新的 Excel.php 的檔案
- <?php
- if (!defined('BASEPATH')) exit('No direct script access allowed');
- /*
- * =======================================
- * Author : Team Tech Arise
- * License : Protected
- * Email : [email protected]
- *
- * =======================================
- */
- require_once APPPATH . "/third_party/PHPExcel.php";
- class Excel extends PHPExcel {
- public function __construct() {
- parent::__construct();
- }
- }
- ?>
步驟三: 請先準備好資料庫,然後讀取 library
- <?php
- $this->load->library('excel');
- ?>
步驟四: 接這參考下面這段程式把資料輸出即可
- // get data from databse
- $fileName = 'contest-data-'.$contest_id.'.xlsx';
- // load excel library
- $this->load->library('excel');
- $objPHPExcel = new PHPExcel();
- $objPHPExcel->setActiveSheetIndex(0);
- // set Header
- $objPHPExcel->getActiveSheet()->SetCellValue('A1', '編號');
- $objPHPExcel->getActiveSheet()->SetCellValue('B1', '姓名');
- $objPHPExcel->getActiveSheet()->SetCellValue('C1', '學校');
- $objPHPExcel->getActiveSheet()->SetCellValue('D1', '科系');
- $objPHPExcel->getActiveSheet()->SetCellValue('E1', '職業');
- $objPHPExcel->getActiveSheet()->SetCellValue('F1', 'Email');
- $objPHPExcel->getActiveSheet()->SetCellValue('G1', '電話');
- $objPHPExcel->getActiveSheet()->SetCellValue('H1', '地址');
- $objPHPExcel->getActiveSheet()->SetCellValue('I1', '標題');
- $objPHPExcel->getActiveSheet()->SetCellValue('J1', '介紹');
- $rowCount = 2;
- foreach($data as $value){
- $objPHPExcel->getActiveSheet()->SetCellValue('A' . $rowCount, $value['sn']);
- $objPHPExcel->getActiveSheet()->SetCellValue('B' . $rowCount, $value['name']);
- $objPHPExcel->getActiveSheet()->SetCellValue('C' . $rowCount, $value['school']);
- $objPHPExcel->getActiveSheet()->SetCellValue('D' . $rowCount, $value['department']);
- $objPHPExcel->getActiveSheet()->SetCellValue('E' . $rowCount, $value['career']);
- $objPHPExcel->getActiveSheet()->SetCellValue('F' . $rowCount, $value['email']);
- $objPHPExcel->getActiveSheet()->SetCellValue('G' . $rowCount, $value['phone']);
- $objPHPExcel->getActiveSheet()->SetCellValue('H' . $rowCount, $value['address']);
- $objPHPExcel->getActiveSheet()->SetCellValue('I' . $rowCount, $value['title']);
- $objPHPExcel->getActiveSheet()->SetCellValue('J' . $rowCount, $value['intro']);
- $rowCount++;
- }
- $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
- $objWriter->save($base_url.'assets/excel/'.$fileName);
- // download file
- header("Content-Type: application/vnd.ms-excel");
- redirect($base_url.$fileName);
- }
參考資料來源: Export Data to Excel using Codeigniter
留言