ออกรายงานเป็น Excel ไฟล์ ด้วย PhpSpreadsheet เบื้องต้น ตอนที่ 1
เขียนเมื่อ 3 ปีก่อน โดย Ninenik Narkdeephpspreadsheet
คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ phpspreadsheet
ไปที่
Copy
กรณีใช้เป็น xls ให้ใช้เป็น xls class ดังนี้
เนื้อหานี้จะเป็นเริ่มต้นการใช้งาน PhpSpreadsheet สำหรับการออกรายงานหรือสร้าง
ไฟล์ excel โดย PhpSpreadsheet เป็น PHP Library ที่พัฒนาใหม่มาใช้แทน PHPExcel ซึ่งปัจจุบัน
ไม่ได้มีการพัฒนาต่อแล้ว เนื้อหา PHPExcel ในเว็บไซต์ของเราก็ยังสามารถใช้งานได้ แต่แนะนำ
ให้เปลี่ยนมาใช้ตัวใหม่แทน
ความต้องการของโปรแกรม
สิ่งที่จะเป็นจะต้องมีเมื่อมีจะนำ PhpSpreadsheet ไปใช้งาน มีดังนี้้
- เป็น PHP เวอร์ชั่น 5.6 ขึ้นไป (เฉพาะเวอร์ชั่น 1.8.2 ลงมา) มากกว่า 1.8.2 ต้องใช้ PHP 7.1 ขึ้นไป
- เปิดใช้งาน php_zip extension
- เปิดใช้งาน php_xml extension
- เปิดใช้งาน php_gd2 extension
สามารถดูแนวทางการเปิดใช้งาน extension กรณีพัฒนาที่เครื่องด้วยโปรแกรมจำลอง server เช่น xampp ได้ที่บทความ
ตามลิ้งค์ http://niik.in/633 โดยดูตอนท้ายของบทความ
การติดตั้ง PhpSpreadsheet
เราจะใช้ composer เพื่อทำการติดตั้ง PhpSpreadsheet มาใช้งานในโปรเจ็คของเรา ด้วยคำสั่ง ด้านล่างผ่าน command line
composer require phpoffice/phpspreadsheet // ใช้คำสั่งนี้จะได้เวอร์ชั่นล่าสุด จะต้องใช้ PHP 7.1 ขึ้นไป composer require phpoffice/phpspreadsheet:1.8.2 // ใช้คำสั่งนี้จะได้เวอร์ชั่นที่รองรับPHP 5.6 ขึ้นไป
ทดสอบการทำงานเบื้องต้น
ให้เราสร้างไฟล์ชื่อ test.php แล้วกำหนดโค้ดดังนี้
<?php // include composer autoload require 'vendor/autoload.php'; // import the PhpSpreadsheet Class use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World !'); // กำหนดค่าใน cell A1 $sheet->setCellValue('B1', 'ทดสอบข้อความภาษาไทย !'); // กำหนดค่าใน cell B1 $writer = new Xlsx($spreadsheet); $output_file = "hello_world.xlsx"; // กำหนดชื่อไฟล์ excel ที่ต้องการ $writer->save($output_file); // สร้าง excel if(file_exists($output_file)){ // ตรวจสอบว่ามีไฟล์ หรือมีการสร้างไฟล์ แล้วหรือไม่ echo '<a href="'.$output_file.'" target="_blank">Download</a>'; }
รันไฟล์ test.php โดยเมื่อรันไฟล์ผ่านบราวเซอร์แล้ว หากไม่เกิดข้อผิดพลาดใดๆ ตัว PhpSpreadsheet จะทำการ
สร้างไฟล์ชื่อ hello_world.xlsx ไว้ที่ path เดียวกับไฟล์ test.php ดังรูป

ผลลัพธ์เมื่อรันผ่านบราเซอร์

ไฟล์ hello_world.xlsx

เพิ่มเติมเนื้อหา ครั้งที่ 1 วันที่ 24-11-2019
การกำหนดค่า ข้อมูลเกี่ยวกับไฟล์ excel
เราสามารถกำหนดข้อมูลรายละเอียดเกี่ยวเอกสารไฟล์ Excel เช่น ผู้เขียนไฟล์ ผู้ที่แก้ไข หัวข้อ และอื่นๆ ตาม
ต้องการตามรูปแบบด้านล่างต่อไปนี้
<?php // include composer autoload require 'vendor/autoload.php'; // import the PhpSpreadsheet Class use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // การกำหนดค่า ข้อมูลเกี่ยวกับไฟล์ excel $spreadsheet->getProperties() ->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription( "Test document for Office 2007 XLSX, generated using PHP classes." ) ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); $sheet->setCellValue('A1', 'Hello World !'); // กำหนดค่าใน cell A1 $sheet->setCellValue('B1', 'ทดสอบข้อความภาษาไทย !'); // กำหนดค่าใน cell B1 $writer = new Xlsx($spreadsheet); $output_file = "hello_world.xlsx"; // กำหนดชื่อไฟล์ excel ที่ต้องการ $writer->save($output_file); // สร้าง excel if(file_exists($output_file)){ // ตรวจสอบว่ามีไฟล์ หรือมีการสร้างไฟล์ แล้วหรือไม่ echo '<a href="'.$output_file.'" target="_blank">Download</a>'; } ?>
การกำหนดให้ดาวน์โหลดไฟล์ Excel ทันที
เราสามารถกำหนดให้ ทำการดาวน์โหลด Excel ไฟล์ทันทีที่มีการเรียกใช้งานการสร้างไฟล์ โดยที่ไม่ต้องทำการบันทึก
ไฟล์ไว้บน server สามารถทำได้ดังนี้
<?php // include composer autoload require 'vendor/autoload.php'; // import the PhpSpreadsheet Class use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // การกำหนดค่า ข้อมูลเกี่ยวกับไฟล์ excel $spreadsheet->getProperties() ->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription( "Test document for Office 2007 XLSX, generated using PHP classes." ) ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); $sheet->setCellValue('A1', 'Hello World !'); // กำหนดค่าใน cell A1 $sheet->setCellValue('B1', 'ทดสอบข้อความภาษาไทย !'); // กำหนดค่าใน cell B1 $writer = new Xlsx($spreadsheet); // ชื่อไฟล์ $file_export= "Excel-".date("dmY-Hs"); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$file_export.'.xlsx"'); header("Content-Transfer-Encoding: binary "); $writer->save('php://output'); exit(); ?>
<?php // include composer autoload require 'vendor/autoload.php'; // import the PhpSpreadsheet Class use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xls; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // การกำหนดค่า ข้อมูลเกี่ยวกับไฟล์ excel $spreadsheet->getProperties() ->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription( "Test document for Office 2007 XLSX, generated using PHP classes." ) ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); $sheet->setCellValue('A1', 'Hello World !'); // กำหนดค่าใน cell A1 $sheet->setCellValue('B1', 'ทดสอบข้อความภาษาไทย !'); // กำหนดค่าใน cell B1 $writer = new Xls($spreadsheet); // ชื่อไฟล์ $file_export= "Excel-".date("dmY-Hs"); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$file_export.'.xls"'); header("Content-Transfer-Encoding: binary "); $writer->save('php://output'); exit(); ?>
กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ

อ่านต่อที่บทความ
-
13 Jul2019การจัดการ cell ในไฟล์ Excel ด้วย PhpSpreadsheet เบื้องต้น ตอนที่ 2 อ่าน 6,843
เนื้อหานี้ เราจะมาต่อจากตอนที่แล้ว ที่เราได้ทำความรู้จักกับ PhpSpreadsheet แล
เนื้อหาที่เกี่ยวข้อง
-
กำลังอ่านเนื้อหานี้อยู่12 Jul2019ออกรายงานเป็น Excel ไฟล์ ด้วย PhpSpreadsheet เบื้องต้น ตอนที่ 1 อ่าน 11,537
เนื้อหานี้จะเป็นเริ่มต้นการใช้งาน PhpSpreadsheet สำหรับการออกรายงานหรือสร้าง
-
13 Jul2019การจัดการ cell ในไฟล์ Excel ด้วย PhpSpreadsheet เบื้องต้น ตอนที่ 2 อ่าน 6,843
เนื้อหานี้ เราจะมาต่อจากตอนที่แล้ว ที่เราได้ทำความรู้จักกับ PhpSpreadsheet แล
Tags::
phpspreadsheet
URL สำหรับอ้างอิง
Top
Copy
ขอบคุณทุกการสนับสนุน
![]()