PHP วิธี Export Excel ไฟล์โดยการ Query จากฐานข้อมูล
PHP วิธี Export Excel ไฟล์โดยการ Query จากฐานข้อมูล
ส่วนหนึ่งของการทำเว็บไซต์คือการพัฒนาระบบหลังบ้าน และฟังก์ชั่นที่จำเป็นสำหรับระบบหลังบ้านอีกอย่างหนึ่งคือการสร้างไฟล์รายงานทั้ง .excel และ .csv หรืออาจจะมากกว่านี้ สำหรับบางธุรกิจไฟล์รายงานมีความจำเป็นและสำคัญมาก เพราะนอกจากงานออนไลน์แล้ว ในขั้นตอนต่อไปอาจจะต้องนำไฟล์ที่มี format ที่ธุรกิจใช้งานอยู่ ไปทำงานต่อในแบบออฟไลน์ วันนี้ลองมาดูกันครับว่าเราจะสามารถ export ข้อมูลเป็นไฟล์ excel โดยการนำข้อมูลจากฐานข้อมูลมาทำเป็นตารางได้อย่างไร
วิธี Export Excel โดยใช้ PHP
- 1. สร้างไฟล์ชื่อว่า report.php ส่วนแรกของไฟล์เขียนคำสั่งภาษา PHP เพื่อกำหนดชื่อไฟล์ที่เราจะ export และกำหนดให้ไฟล์นี้เป็นการดาวน์โหลดข้อมูล
คำสั่งภาษา PHP ในส่วนนี้จะเป็นการสร้างและดาวน์โหลดไฟล์เมื่อเปิดไฟล์ report.php ผ่าน url เว็บไซต์
<?php header("Content-Type: application/vnd.ms-excel"); // ประเภทของไฟล์ header('Content-Disposition: attachment; filename="myexcel.xls"'); //กำหนดชื่อไฟล์ header("Content-Type: application/force-download"); // กำหนดให้ถ้าเปิดหน้านี้ให้ดาวน์โหลดไฟล์ header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); // กำหนดให้ถ้าเปิดหน้านี้ให้ดาวน์โหลดไฟล์ header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize("myexcel.xls")); @readfile($filename); ?>
ลำดับ | ชื่อ | อีเมล | เบอร์โทร |
1 | วิทูลย์ โพมิผล | [email protected] | 085 900 3405 |
2 | เยาวภา โอภาษี | [email protected] | 085 605 7748 |
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <table> <tr> <td>ลำดับ</td> <td>ชื่อ</td> <td>อีเมล</td> <td>เบอร์โทร</td> </tr> <?php while($row=mysql_fetch_array($result)){ $id = $row['id']; $name = $row['name']; $email = $row['email']; $mobile = $row['mobile']; echo '<tr> <td>'.$id.'</td> <td>'.$name.'</td> <td>'.$email.'</td> <td>'.$mobile.'</td> </tr>'; ?> </table> </body> </html>
นอกเหนือจากที่ก็เป็นการนำไปปรับใช้ให้เหมาะสมกับงาน เพราะสุดท้ายแล้วในการพัฒนาเพื่อใช้งานจริง ๆ อาจจะมีเรื่องความต้องการของลูกค้าเพิ่มเติมมา ตัวอย่างเช่น อาจจะต้องสามารถ export excel เป็นข้อมูลแบบรายวัน รายเดือนหรือรายปีได้ การนำออกข้อมูลแบบนี้ก็เพียงแค่ส่งตัวแปรแบบ timestamp เข้ามาเพื่อตรวจสอบวันที่ เดือนและปี เท่านั้นเองครับ