การใช้งาน PHPExcel ร่วมกับ CodeIgniter

เราสามารถนำไลบราลี PHPExcel มาใช้งานร่วมกับ CodeIgniter ได้ง่ายๆ ดังนี้

ดาวน์โหลดไฟล์ zip ของ PHPExcel จาก gitHub  แล้วแตกไฟล์ zip ดังกล่าว ก๊อปปี้เฉพาะไฟล์ที่อยู่ในแฟ้ม Classes ไปไว้ที่แฟ้ม application/third_party  ดังรูป

Untitled

จากนั้นให้สร้างไฟล์ php เพื่อครอบไลบราลีตัวนี้ไว้โดยบันทึกไว้ในแฟ้ม application/library เพื่อใช้เป็นตัวกลางในการเรียกใช้งาน PHPExcel ในที่นี้ ผมจะสร้างไฟล์ชื่อ Excel.php  แล้วพิมพ์โค๊ดดังต่อไปนี้ลงไป


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

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

class Excel extends PHPExcel{

	public function __construct(){
		parent::__construct();
	}
}

เท่านี้เราก็สามารถใช้งาน PHPExcel ร่วมกับ CodeIgniter ได้แล้วครับ สำหรับวิธีใช้งานนั้นทำได้ง่าย ๆดังนี้ครับ

ตัวอย่างการอ่านไฟล์ Excel

สร้างไฟล์ excel ที่จะใช้อ่าน ในที่นี้ผมสร้างไฟล์ excel ที่เก็บข้อมูลคะแนนและเกรดนักศึกษาดังต่อไนี้

Untitled

จากนั้นบันทึกไว้ที่ใดที่หนึ่งภายใต้ site ในที่นี้ผมเก็บไว้ที่ /upload ตั้งชื่อว่า student_grade.xls

ขั้นตอนต่อไปสร้างไฟล์ controller เพื่อมาทดสอบ ในที่นี้ผมสร้าง controller ชื่อ test.php วางไว้ที่ /controller โดยมีรายละเอียดของโค๊ดดังนี้


<?php 

class Test extends CI_Controller {

	
	public function index()
	{
		$this->readExcel();
	}
	
	public function readExcel(){
		$this->load->library('excel');
		$objReader = PHPExcel_IOFactory::load('upload/student_grade.xls');
		$sheetData = $objReader->getActiveSheet()->toArray(true,true,true,true);
		echo "<table border=1>";
		foreach ($sheetData as $data) {
			echo "<tr>";
			$this->writeColumn($data['A']);
			$this->writeColumn($data['B']);
			$this->writeColumn($data['C']);
			$this->writeColumn($data['D']);
			echo "</tr>";
		}
		echo "</table>";
	}
	
	public function writeColumn($data){
		echo "<td>$data</td>";
	}
}

?>

จากนั้นทดสอบการรันบนเว็ปบราวเซอร์ โดยอ้างไปยัง controller นั้น จะได้ผลลัพธ์ดังนี้

Untitled

จากบรรทัดที่ 14 ข้างต้นเป็นการอ่านข้อมูลจาก จากตัวอย่างไฟล์ ทั้งหมด 4 column ซึ่งได้แก่ A B C และ D จากนั้นแปลงเป็นออปเจคต์ของอาร์เรย์

$sheetData = $objReader->getActiveSheet()->toArray(true,true,true,true);

การเข้าถึงข้อมูลในอาร์เรย์จะใช้คีย์เวิร์ดเป็นชื่อคอลัมน์ ซึ่งได้แก่ A B C และ D ตามลำดับ

foreach ($sheetData as $data) {
			echo "<tr>";
			$this->writeColumn($data['A']);
			$this->writeColumn($data['B']);
			$this->writeColumn($data['C']);
			$this->writeColumn($data['D']);
			echo "</tr>";
}

บรรทัดข้างต้นเป็นการวนลูปเพื่อพิมพ์ตารางทีละแถวโดยอ้างอิงข้อมูลจากคอลัมน์ A B C และ D ตามลำดับ

สำหรับตัวอย่างในการใช้งาน PHPExcel ร่วมกับ CodeIgniter นั้นผมขอจบไว้เพียงเท่านี้ก่อนนะครับ ถ้ามีเวลาผมจะมาเพิ่มเติมเรื่องการเขียนไฟล์ Excel ต่อในโอกาสหน้า ขอบคุณที่อ่านจนจบ สวัสดีครับ

แหล่งอ้างอิง

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

Up ↑

%d bloggers like this: