ออกรายงานเป็น excel ไฟล์ด้วย PHPExcel ตอนเริ่มใช้

เขียนเมื่อ 10 ปีก่อน โดย Ninenik Narkdee
รายงาน phpexcel

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ รายงาน phpexcel

ดูแล้ว 19,896 ครั้ง


เห็นความสามารถของ PHPExcel แล้วคิดว่าน่าจะมีประโยชน์
เลยเอามาแนะนำกัน โหลดได้ที่
 
ปัจจุบันเปลี่ยนไปใข้ที่  (อัพเดท 09/03/2560)
https://github.com/PHPOffice/PHPExcel  

แนะนำให้โหลดเป็นเวอร์ชั่น PHPExcel 1.8.0
หลังจากดาวน์โหลดแล้ว เราจะได้ไฟล์ PHPExcel_1.8.0_doc.zip
แตกไฟล์ แล้ว copy โฟลเดอร์ Classes ไว้ใช้งาน
 

 
 
มาทดสอบสร้างไฟล์ excel ด้วยโค้ดอย่างง่าย
 
 
โครงสร้างตัวอย่างจะมีตามนี้
- Classes
- excel_files  โฟลเดอร์สำหรับ บันทึกไฟล์ excel
- sample_excel1.php  ไฟล์ทดสอบโค้ดอย่างง่าย
 
* ใครที่ต้องการดูตัวอย่างทั้งหมด สามารถดูได้ในโฟลเดอร์ example
ใน PHPExcel_1.8.0_doc.zip ที่แตกไฟล์แล้วได้เลย
 
โค้ดไฟล์ sample_excel1.php  (มีดัดแปลงและประยุกต์ให้ใช้งานง่ายขึ้นเล็กน้อย)
 
<?php
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Asia/Bangkok');
// http://php.net/manual/en/timezones.php

define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); // ส่วนนี้ไม่มีอะไรกำหนดค่าไว้ใช้ในการ echo
require_once 'Classes/PHPExcel.php';  // เรียกใช้งาน class

// เชื่อมต่อฐานข้อมูล  
//$link=mysql_connect("localhost","root","test") or die("error".mysql_error());  
//mysql_select_db("test",$link);  
//mysql_query("set character set utf8");  

// โฟลเดอร์เก็บไฟล์ กรณีใช้ใน server ให้กำหนด permission เป็น 777
$placeFilesSave="excel_files/";

// สร้าง PHPExcel object
echo date('H:i:s') , " Create new PHPExcel object" , EOL;
$objPHPExcel = new PHPExcel();

// กำหนดค่าต่างๆ ของเอกสาร excel
echo date('H:i:s') , " Set document properties" , EOL;
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
							 ->setLastModifiedBy("Maarten Balliauw")
							 ->setTitle("PHPExcel Test Document")
							 ->setSubject("PHPExcel Test Document")
							 ->setDescription("Test document for PHPExcel, generated using PHP classes.")
							 ->setKeywords("office PHPExcel php")
							 ->setCategory("Test result file");

// การจัดรูปแบบของ cell
$objPHPExcel->getDefaultStyle()
                        ->getAlignment()
                        ->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP)
                        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 
                        //HORIZONTAL_CENTER //VERTICAL_CENTER


// การเพิ่มข้อมูล
echo date('H:i:s') , " Add some data" , EOL;
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Top')
            ->setCellValue('B1', 'Sub');

// เราจะทดสอบเพิ่มข้อมูลในตาราง excel อย่างง่าย
$start_row=2;
for($i=1;$i<=10;$i++){
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$start_row, $i)
            ->setCellValue('B'.$start_row, $i*2);
    $start_row++;
}
 

// กำหนดชื่อให้กับ worksheet ที่ใช้งาน
echo date('H:i:s') , " Rename worksheet" , EOL;
$objPHPExcel->getActiveSheet()->setTitle('Simple');

// กำหนด worksheet ที่ต้องการให้เปิดมาแล้วแสดง ค่าจะเริ่มจาก 0 , 1 , 2 , ......
$objPHPExcel->setActiveSheetIndex(0);

// ชื่อไฟล์
$saveFileName="excel_by_phpexcel1";

// บันทึกเป็น Excel 2007 file
echo date('H:i:s') , " Write to Excel2007 format" , EOL;
$callStartTime = microtime(true);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$saveFileNameFull=$saveFileName.".xlsx";
$pathSaveFile1=$placeFilesSave.$saveFileNameFull;
$objWriter->save($pathSaveFile1);



// บันทึกเป็น Excel 95 file
echo date('H:i:s') , " Write to Excel5 format" , EOL;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$saveFileNameFull=$saveFileName.".xls";
$pathSaveFile2=$placeFilesSave.$saveFileNameFull;
$objWriter->save($pathSaveFile2);



// แสดงการเขียนไฟล์เรียกร้อยแล้ว และมีลิ้งค์ให้ดาวโหลด
echo date('H:i:s') , " Done writing files" , EOL;
echo 'Files have been created in ' , $placeFilesSave , EOL;
echo "<a href='".$pathSaveFile1."' target='_blank'>Download Excel2007 format</a>",EOL;
echo "<a href='".$pathSaveFile2."' target='_blank'>Download Excel5 format</a>",EOL;
?>


 
ทดสอบ run ไฟล์ จะได้ตามนี้
 

 
 
เราจะได้ไฟล์ excel ทั้งสองเวอร์ชั่น อยู่ในโฟลเดอร์ excel_files ตามรูป
 

 

 
ลองเปิดไฟล์ excel จะได้ตามนี้
 

 
 
ตัวอย่างไฟล์ run บน server
 
 
 
ข้อควรระวัง:: เนื่องจาก PHPExcel จะมีการเรียกใช้งานไฟล์ php_zip.dll ซึ่งเป็น extension
เราต้องทำการเปิดใช้งาน ส่วนเสริมนี้ก่อน 
 
การแจ้ง error กรณียังไม่เปิดใช้งาน extension = php_zip.dll
 
Fatal error: Class 'ZipArchive' not found in ......
 
การเปิดใช้งาน ให้เปิดไฟล์ php.ini
โดยไปที่ Start > Run > แล้วพิมพ์ php.ini แล้วกด Enter
windows 7 , 8 พิมพ์ได้ที่ช่องค้นหา แล้วกด Enter
 
จากนั้นแก้เป็นดังนี้
 
 
จากนั้นให้ restart apache 


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ







เนื้อหาที่เกี่ยวข้อง






เนื้อหาพิเศษ เฉพาะสำหรับสมาชิก

กรุณาล็อกอิน เพื่ออ่านเนื้อหาบทความ

ยังไม่เป็นสมาชิก

สมาชิกล็อกอิน



( หรือ เข้าใช้งานผ่าน Social Login )




URL สำหรับอ้างอิง










เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ