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 เข้ามาเพื่อตรวจสอบวันที่ เดือนและปี เท่านั้นเองครับ