Export เป็น Excel อย่างด่วน
1,073 viewsในงานหลายๆ งานที่ต้องมีการ export ข้อมูลออกมา เมื่อก่อนงูๆ ปลาๆ แค่ทำเป็น csv ต่อมาเริ่มหาเครื่องมือช่วยแล้วก็ได้ php_writeexcel ดูตัวอย่างการทำงาน ได้ที่นี่ เป็น class ที่ช่วยสร้าง excel จริงๆ ขึ้นมาได้ ซึ่งใช้ได้ดีมากๆ แต่ในบางครั้งแค่ต้องการ export ข้อมูลอย่างเดียวเราสามารถใช้วิธีสร้างไฟล์ excel ง่ายๆ จาก code html ได้เลย
ดูตัวอย่าง ได้ที่นี่ มาดู code กัน
<? $strExcelFileName = "Excel ไฟล์ง่ายนิดเดียว.xls"; header("Content-Type: application/x-msexcel; name=\"$strExcelFileName\""); header("Content-Disposition: inline; filename=\"$strExcelFileName\""); header("Pragma: no-cache"); ?>
ส่วนนี้เป็น header ของ server (website) เพื่อบอก client (browser IE,FireFox, etc..) ว่าเอกสารที่กำลังเรียกมานี้เป็น excel เรื่อง header นี้ถ้ารักจะเป็น web developer จำเป็นต้องรู้นะครับ ทำอะไรได้มากมายเลย เช่น debug program ที่เกี่ยวกับ www, debug flash + php ฯลฯ จะทำให้ทำงานได้เร็วขึ้นเยอะ หรือรวมไปถึงเรื่อง hack เลยทีเดียว ไว้เรื่อง header จะขอแยกเป็นอีกเรื่องหนึ่งในภายหลังครับ
<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"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html;charset=tis-620" /> <style id="SiXhEaD_Excel_Styles"></style> </head> <body> <strong>ตัวอย่างรายงาน</strong><br> <br> <div id="SiXhEaD_Excel" align=center x:publishsource="Excel"> <table x:str border=0 cellpadding=0 cellspacing=0 width=100% style="border-collapse: collapse"> <tr> <td width="50" class=xl2216681 nowrap><strong>Id</strong></td> <td width="80" class=xl2216681 nowrap><strong>จังหวัด</strong></td> <td width="80" class=xl2216681 nowrap><strong>โทรศัพท์</strong></td> </tr> <tr> <td class=xl2216681 nowrap>00001</td> <td class=xl2216681 nowrap>กรุงเทพฯ</td> <td class=xl2216681 nowrap>0810000000</td> </tr> <tr> <td class=xl2216681 nowrap>00002</td> <td class=xl2216681 nowrap>กาญจนบุรี</td> <td class=xl2216681 nowrap>0819999999</td> </tr> </table> </div> </body> </html>
ส่วนนี้เป็น tag html ล้วนๆ มีสิ่งที่พิเศษอยู่หน่อยตรง 3 บรรทัดแรกที่ระบุว่า รูปแบบของไฟล์นี้เป็น excel
class=xl2216681
ใส่เลข random อะไรก็ได้แต่ให้เหมือนกันทั้งหน้า
จะเอาไปใช้งานก็ดูตัวอย่างดีๆ นะครับ tag บางอันถ้าไม่มีก็ยังออกมาเป็น excel ได้ แต่ว่าบาง column ที่มี 0 นำหน้าเลข 0 จะหายไปครับ
ทิ้งท้าย
- source code
- ตัว phpmyadmin ที่เราๆ ท่านๆ ใช้กันอยู่ก็ใช้วิธี export ออกเป็น excel ด้วยวิธีนี้เช่นกัน
- ผมแนะนำนะครับว่า พวกไฟล์ทั้งหลายอย่าไปคิดว่ามันเปิดด้วย excel หรือ word ได้เท่านั้น ลองเอา editplus หรือ notepad เปิดไฟล์ .xls ที่ได้จากวิธีการนี้ดูแล้วคุณจะประหลาดใจกับมันครับ เรื่องเปิดไฟล์ใดๆ ด้วย editplus ยังทำให้คุณแปลกใจอะไรได้อีกมากมาย ลองดูแล้วกันครับ
2 Comments »
RSS feed for comments on this post. TrackBack URL
[...] อ่านเพิ่มเติมได้ที่นี่ครับ (อธิบายดีจริงๆ) : http://sixhead.com/2008/03/06/easy-export-to-excel/ [...]
[...] คราวนี้ถือเป็นภาคต่อจากบทความ Export เป็น Excel อย่างด่วน ส่วนบทความนี้ ดูตัวอย่าง ได้ที่นี่ [...]