สำหรับกำารสร้าง Web Application ที่เกี่ยวข้องกับ ฐานข้อมูล การ export ข้อมูลจาก database ออกมาเป็นไฟล์ excel นั้นจะช่วยให้ผู้ใช้นำข้อมูลที่ได้ไปวิเคราะห์ต่อได้สะดวกขึ้น ในตัวอย่างนี้จะเป็นการนำข้อมูลจาก MySql ออกมาแสดงในหน้าเว็บ ด้วย PHP และให้ผู้ใช้สามารถ Download เป็น ไฟล์ excel ได้ดังนี้
Link ที่เกี่ยวข้อง การอ่านข้อมูลจากไฟล์ excel โดยใช้ PHP
รับเขียนโปรแกรม PHP ออกรายงานเป็น excel
<?php
/*กำหนด username password และ database name ของ mysql */
$servername = "localhost";
$username = "....";
$password = "....";
$dbname = "....";
/*------เชื่อมต่อ Database----*/
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection Error: " . $conn->connect_error);
}
/*------ถ้ายังไม่มีตาราง ให้สร้างตาราง ชื่อ food----*/
$sql = "CREATE TABLE IF NOT EXISTS food (
food_name VARCHAR(100),
price INT(5)
)";
$conn->query($sql);
$sql = "SELECT * FROM food";
$result = $conn->query($sql);
if ($result->num_rows == 0)
{
/*----ถ้ายังไม่มีข้อมูลในตาราง food ให้เพิ่มข้อมูลเข้าไป----*/
$sql = "INSERT INTO food (food_name, price)
VALUES ('Hamburger', '199')";
$conn->query($sql);
$sql = "INSERT INTO food (food_name, price)
VALUES ('Pizza', '399')";
$conn->query($sql);
$sql = "INSERT INTO food (food_name, price)
VALUES ('Doughnut', '59')";
$conn->query($sql);
}
/*สร้างปุ่มสำหรับ Download ไฟล์ excel โดยกำหนดว่าเมื่อกดปุ่ม Downlaod แล้วจะทำงานที่ javascript function ชื่อว่า ExcelReport()*/
echo "<a href='#' id='download_link' onClick='javascript:ExcelReport();''>Download</a>";
echo "<table id='myTable'>";
echo "<tr>";
echo "<td>Food Name</td>";
echo "<td>Price</td>";
echo "</tr>";
/*นำข้อมูลจากตาราง food มาแสดง*/
$sql = "SELECT * FROM food";
$result = $conn->query($sql);
while($row = $result->fetch_assoc())
{
echo "<tr>";
echo "<td>$row[food_name]</td>";
echo "<td>$row[price]</td>";
echo "</tr>";
}
echo "</table>";
$conn->close();
?>
<!-- เรียกใช้ javascript สำหรับ export ไฟล์ excel -->
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js" ></script>
<script src="https://unpkg.com/file-saver@1.3.3/FileSaver.js" ></script>
<script>
function ExcelReport()//function สำหรับสร้าง ไฟล์ excel จากตาราง
{
var sheet_name="excel_sheet";/* กำหหนดชื่อ sheet ให้กับ excel โดยต้องไม่เกิน 31 ตัวอักษร */
var elt = document.getElementById('myTable');/*กำหนดสร้างไฟล์ excel จาก table element ที่มี id ชื่อว่า myTable*/
/*------สร้างไฟล์ excel------*/
var wb = XLSX.utils.table_to_book(elt, {sheet: sheet_name});
XLSX.writeFile(wb,'report.xlsx');//Download ไฟล์ excel จากตาราง html โดยใช้ชื่อว่า report.xlsx
}
</script>
<style type="text/css">
table {
border-collapse: collapse;
width:40%;
}
table, th, td {
border: 1px solid black;
}
</style>