Site icon บริษัท โค๊ดบี จำกัด

PHP วิธี Export Excel ไฟล์โดยการ Query จากฐานข้อมูล

php-export-excel

php-export-excel

<h3>PHP วิธี Export Excel ไฟล์โดยการ Query จากฐานข้อมูล<&sol;h3>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>PHP วิธี Export Excel ไฟล์โดยการ Query จากฐานข้อมูล<&sol;strong><br &sol;>&NewLine;ส่วนหนึ่งของการทำเว็บไซต์คือการพัฒนาระบบหลังบ้าน และฟังก์ชั่นที่จำเป็นสำหรับระบบหลังบ้านอีกอย่างหนึ่งคือการสร้างไฟล์รายงานทั้ง &period;excel และ &period;csv หรืออาจจะมากกว่านี้ สำหรับบางธุรกิจไฟล์รายงานมีความจำเป็นและสำคัญมาก เพราะนอกจากงานออนไลน์แล้ว ในขั้นตอนต่อไปอาจจะต้องนำไฟล์ที่มี format ที่ธุรกิจใช้งานอยู่ ไปทำงานต่อในแบบออฟไลน์ วันนี้ลองมาดูกันครับว่าเราจะสามารถ export ข้อมูลเป็นไฟล์ excel โดยการนำข้อมูลจากฐานข้อมูลมาทำเป็นตารางได้อย่างไร<&excl;--more--><&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;<h4>วิธี Export Excel โดยใช้ PHP<&sol;h4>&NewLine;<ul>&NewLine;<li>1&period; สร้างไฟล์ชื่อว่า report&period;php ส่วนแรกของไฟล์เขียนคำสั่งภาษา PHP เพื่อกำหนดชื่อไฟล์ที่เราจะ export และกำหนดให้ไฟล์นี้เป็นการดาวน์โหลดข้อมูล<&sol;li>&NewLine;<p>คำสั่งภาษา PHP ในส่วนนี้จะเป็นการสร้างและดาวน์โหลดไฟล์เมื่อเปิดไฟล์ report&period;php ผ่าน url เว็บไซต์<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " > &NewLine;&lt&semi;&quest;php &NewLine; &NewLine;header&lpar;"Content-Type&colon; application&sol;vnd&period;ms-excel"&rpar;&semi; &sol;&sol; ประเภทของไฟล์ &NewLine;header&lpar;'Content-Disposition&colon; attachment&semi; filename&equals;"myexcel&period;xls"'&rpar;&semi; &sol;&sol;กำหนดชื่อไฟล์ &NewLine;header&lpar;"Content-Type&colon; application&sol;force-download"&rpar;&semi; &sol;&sol; กำหนดให้ถ้าเปิดหน้านี้ให้ดาวน์โหลดไฟล์ &NewLine;header&lpar;"Content-Type&colon; application&sol;octet-stream"&rpar;&semi; &NewLine;header&lpar;"Content-Type&colon; application&sol;download"&rpar;&semi; &sol;&sol; กำหนดให้ถ้าเปิดหน้านี้ให้ดาวน์โหลดไฟล์ &NewLine;header&lpar;"Content-Transfer-Encoding&colon; binary"&rpar;&semi; &NewLine;header&lpar;"Content-Length&colon; "&period;filesize&lpar;"myexcel&period;xls"&rpar;&rpar;&semi; &NewLine; &NewLine;&commat;readfile&lpar;&dollar;filename&rpar;&semi; &NewLine; &NewLine;&quest;&gt&semi;<&sol;pre>&NewLine;<li>2&period; จากข้อ 1 จะเป็นการสร้างไฟล์เท่านั้น แต่ยังไม่มีข้อมูล มีการสร้างข้อมูลให้ไฟล์ ให้เราเขียน html ต่อจากคำสั่ง php และใช้แท็ก table ในการจัดการกับข้อมูล ห้ามใช้ div เด็ดขาด ตัวอย่างเช่น ถ้าเราต้องการทำรายงานสมาชิกก็อาจจะเขียนตารางข้อมูลได้ในลักษณะนี้ <&sol;li>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " > &NewLine;<html xmlns&colon;o&equals;"urn&colon;schemas-microsoft-com&colon;office&colon;office" &NewLine;xmlns&colon;x&equals;"urn&colon;schemas-microsoft-com&colon;office&colon;excel" &NewLine;xmlns&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;TR&sol;REC-html40"> &NewLine; &NewLine;<html> &NewLine;<head> &NewLine;<meta http-equiv&equals;"Content-Type" content&equals;"text&sol;html&semi; charset&equals;utf-8" &sol;> &NewLine;<&sol;head> &NewLine;<body> &NewLine;<table> &NewLine; <tr> &NewLine; <td>ลำดับ<&sol;td> &NewLine; <td>ชื่อ<&sol;td> &NewLine; <td>อีเมล<&sol;td> &NewLine; <td>เบอร์โทร<&sol;td> &NewLine; <&sol;tr> &NewLine; <tr> &NewLine; &Tab;<td>1<&sol;td> &NewLine; <td>วิทูลย์ โพมิผล<&sol;td> &NewLine; <td>codebee2014&commat;gmail&period;com<&sol;td> &NewLine; <td>085 900 3405<&sol;td> &NewLine; <&sol;tr> &NewLine; <tr> &NewLine; &Tab;<td>2<&sol;td> &NewLine; <td>เยาวภา โอภาษี<&sol;td> &NewLine; <td>codebee2015&commat;gmail&period;com<&sol;td> &NewLine; <td>085 605 7748<&sol;td> &NewLine; <&sol;tr> &NewLine;<&sol;table> &NewLine;<&sol;body> &NewLine;<&sol;html> &NewLine;<&sol;pre>&NewLine;<li>3&period; และถ้าเราต้องการใช้ข้อมูลจากฐานข้อมูล ก็เพียงแค่ query ข้อมูลขึ้นมาแล้ว loop แสดงผลในตารางเหมือนในขั้นตอนที่ 2 ตัวอย่างการคำสั่งคิวรี่ข้อมูล<&sol;li>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&lt&semi;html xmlns&colon;o&equals;"urn&colon;schemas-microsoft-com&colon;office&colon;office" &NewLine;xmlns&colon;x&equals;"urn&colon;schemas-microsoft-com&colon;office&colon;excel" &NewLine;xmlns&equals;"http&colon;&sol;&sol;www&period;w3&period;org&sol;TR&sol;REC-html40"&gt&semi; &NewLine; &NewLine;&lt&semi;html&gt&semi; &NewLine;&lt&semi;head&gt&semi; &NewLine;&lt&semi;meta http-equiv&equals;"Content-Type" content&equals;"text&sol;html&semi; charset&equals;utf-8" &sol;&gt&semi; &NewLine;&lt&semi;&sol;head&gt&semi; &NewLine;&lt&semi;body&gt&semi; &NewLine;&lt&semi;table&gt&semi; &NewLine; &lt&semi;tr&gt&semi; &NewLine; &lt&semi;td&gt&semi;ลำดับ&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;ชื่อ&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;อีเมล&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;td&gt&semi;เบอร์โทร&lt&semi;&sol;td&gt&semi; &NewLine; &lt&semi;&sol;tr&gt&semi; &NewLine; &lt&semi;&quest;php &NewLine; while&lpar;&dollar;row&equals;mysql&lowbar;fetch&lowbar;array&lpar;&dollar;result&rpar;&rpar;&lbrace; &NewLine;&Tab; &dollar;id &equals; &dollar;row&lbrack;'id'&rsqb;&semi; &NewLine;&Tab; &dollar;name &equals; &dollar;row&lbrack;'name'&rsqb;&semi; &NewLine;&Tab; &dollar;email &equals; &dollar;row&lbrack;'email'&rsqb;&semi; &NewLine;&Tab; &dollar;mobile &equals; &dollar;row&lbrack;'mobile'&rsqb;&semi; &NewLine;&Tab; echo '&lt&semi;tr&gt&semi; &NewLine;&Tab;&Tab;&Tab;&Tab;&lt&semi;td&gt&semi;'&period;&dollar;id&period;'&lt&semi;&sol;td&gt&semi; &NewLine;&Tab;&Tab;&Tab;&Tab;&lt&semi;td&gt&semi;'&period;&dollar;name&period;'&lt&semi;&sol;td&gt&semi; &NewLine;&Tab;&Tab;&Tab;&Tab;&lt&semi;td&gt&semi;'&period;&dollar;email&period;'&lt&semi;&sol;td&gt&semi; &NewLine;&Tab;&Tab;&Tab;&Tab;&lt&semi;td&gt&semi;'&period;&dollar;mobile&period;'&lt&semi;&sol;td&gt&semi; &NewLine;&Tab;&Tab;&Tab;&lt&semi;&sol;tr&gt&semi;'&semi; &NewLine; &quest;&gt&semi; &NewLine;&lt&semi;&sol;table&gt&semi; &NewLine;&lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi;<&sol;pre>&NewLine;<&sol;ul>&NewLine;<p>นอกเหนือจากที่ก็เป็นการนำไปปรับใช้ให้เหมาะสมกับงาน เพราะสุดท้ายแล้วในการพัฒนาเพื่อใช้งานจริง ๆ อาจจะมีเรื่องความต้องการของลูกค้าเพิ่มเติมมา ตัวอย่างเช่น อาจจะต้องสามารถ export excel เป็นข้อมูลแบบรายวัน รายเดือนหรือรายปีได้ การนำออกข้อมูลแบบนี้ก็เพียงแค่ส่งตัวแปรแบบ timestamp เข้ามาเพื่อตรวจสอบวันที่ เดือนและปี เท่านั้นเองครับ<br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<blockquote><p><a href&equals;"http&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;examples&sol;report&lowbar;excel&lowbar;php&period;php&period;zip" target&equals;"&lowbar;blank" rel&equals;"noopener noreferrer">ดาวน์โหลดไฟล์ตัวอย่าง<&sol;a><&sol;p><&sol;blockquote>&NewLine;<p><&sol;br><&sol;p>&NewLine;

Exit mobile version