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

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

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

ดูแล้ว 18,494 ครั้ง


เห็นความสามารถของ 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 สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


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







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