ข้ามไปที่เนื้อหาหลัก

Codeigniter: Export database to excel file

เริ่มกันเลยนะครับ ก่อนอื่นเลยสำหรับคนที่ใช้ PHP Framework "Codeigniter" สามารถติดตั้ง plugin ได้โดยอ่านรายละเอียดที่นี่ http://codeigniter.com/wiki/Excel_Plugin/ 


วิธีติดตั้งก็ไม่ยากเพี่ยงแค่เราสร้างไฟล์ใหม่ขึ้นมาชื่อ "to_excel_pi.php" ใน path /system/plugins/ 


/system/plugins/to_excel_pi.php





จากนั้นนำโค๊ดด้านล่างไปวางในไฟล์ที่สร้างขึ้นมา หรือที่่ http://codeigniter.com/wiki/Excel_Plugin/
if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
* Excel library for Code Igniter applications
* Author: Derek Allard, Dark Horse Consulting, 
www.darkhorse.to, April 2006
*/
function to_excel($query$filename='exceloutput'){
// just creating the var for field headers to append to below 
     $headers ''
    // just creating the var for field data to append to below
     $data ''

     
$obj =& get_instance();

     
$fields $query->field_data();
     if (
$query->num_rows() == 0{
          
echo 'The table appears to have no data.
'
;
     
else {
          
foreach ($fields as $field{
             $headers 
.= $field->name "\t";
          
}

          
foreach ($query->result() as $row{
               $line 
'';
               foreach(
$row as $value{                                       
                    
if ((!isset($value)) OR ($value == "")) {
                         $value 
"\t";
                    
else {
                         $value 
str_replace('"''""'$value);
                         
$value '"' $value '"' "\t";
                    
}
                    $line 
.= $value;
               
}
               $data 
.= trim($line)."\n";
          
}
     
          $data 
str_replace("\r","",$data);
header("Content-type: application/x-msdownload"); 
header("Content-Disposition: attachment; filename=$filename.xls");
          echo 
"$headers\n$data";
     
}
}
?> 
หลักๆแล้วการทำงานของ plugin นี้ก็จะเอาค่า $result ที่ได้จาก $this->db->get('table'); มาแสดงข้อมูลในรูปแบบตาราง จากนั้นกำหนด header ให้กลับหน้า Page โดยการกำหนด Header ต้องประกาศก่อนที่จะส่งข้อมูลไปยัง Client


Header ใช้คือ
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename="ชื่อไฟล์.xls");
 เมื่อทำการติดตั้ง plugin เรียบร้อยต่อไปเราจะมาดูวิธีการใช้งานนะครับ


ใน Controller 
โหลด plugin ที่ต้องการใช้ 
$this->load->plugin('to_excel');
ทำการดึงข้อมูลจากฐานข้อมูล ในที่นี้ข้อใช้ Database Class ของ CI
$query $this->db->get('tablename');
จากนั้นทำการเรียกใช้ plugin โดยส่งค่าที่ได้จากฐานข้อมูลไปให้    
plugin สามารถระบุ parameter ได้สองแบบ
to_excel($query'filename');
และใช้ชื่อ default  "exceloutput"
to_excel($query);


Credit :: http://codeigniter.com/wiki/Excel_Plugin/

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

วิธีการดึง Record สุดท้ายของการบันทึกในฐานข้อมูลอ้างอิงจากตาราง

การทำงานกับข้อมูลที่มีการปรับปรุงตลอด และต้องทำการบันทึการเปลี่ยนแปลงไว้ด้วยโดยการอ้างอิงกับวันและเวลา เชื่อแน่นอนว่าจะต้องมีปัญหาเกี่ยวกับการดึงข้อมูลล่าสุดออกมาใช้งาน จึงเป็นเรื่องที่ทำให้เกิดเรื่องยุงยาก 

วันนี้จะขอเสนอแนวทางการใช้ SQL เพื่อดึงข้อมูล record สุดท้ายออกมา

แนวทางที่ 1
ให้เลือกข้อมูลโดยการเรียงลำดับจากมากไปน้อยก่อน จากนั้นใช้ฟังก์ชั่น limit เข้ามาช่วยในการตัดตััวที่เหลือออกไปเอาแค่ record แรกที่ผ่านการเรียงลำดับจากมากไปน้อยแล้วออกมา

เปลี่ยนขนาอของตัวอักษรใน Notepad++

เชื่อว่าหลายคนคงจะรู้จักโปรแกรมแก้ไขข้อความที่ชื่อว่า Notepad++
หากหน้าจะที่ใช้มีความละเอียดสูงเมื่อเปิดโปรแกรมมาแล้วจะทำให้รู้สึกว่าตัวอักษรมีขนาดเล็กเกินไป ทำให้ อ่านได้ยาก จึงต้องมีการปรับขนาดของตัวอักษรเพื่อสะดวกในการใช้งาน

วิธีการในการปรับขนาดของตัวอักษร


หรือจะใช้วิธีที่รวดเร็วว่า ก็คือ
การกด Ctrl ค้างไว้แล้วกด + หรือ -กด Ctrl แล้วหมุนเพื่อ Zoom เข้า/ออก หรือจะวิธีการเลือกจาก option ของโปรแกรม

ลินุกซ์ การเพิ่มผู้ใช้ไปยังกรุ๊ป(Linux add user to group)

วิธีการเพิ่ม Linux User ไปยัง Group ในระบบปฏิบัติการลินุกซ์ คุณสามารถใช้คำสั่ง "useradd" หรือ "usermod" ในการเพิ่ม user ไปยัง Linux user group คำสั่ง "useradd" เป็นคำสั่งที่ใช้ในการสร้างหรือปรับปรุง(update) ข้อมูลเริ่มต้นของผู้ใช้ที่สร้างขึ้นใหม่คำสั่ง "usermod" เป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงบัญชีผู้ใช้ 
ตัวอย่างในการใช้คำสั่งนี้ได้ดีและเป็นประโยชน์มากคือการ เพิ่ม user ไปยัง group ที่มีอยู่แล้ว
Group มีอยู่สองแบบคือ กลุ่มแรกเป็น primary user group และกลุ่มที่สองใช้สำหรับเรียก group อื่นๆที่ไม่ใช่ primary group เรียกว่า secondary group
ข้อมูลทั่วไปของผู้ใช้ทั้งหมดจะถูกเก็บอยู่ในไฟล์