ดึงข้อมูลจากฐานข้อมูลเป็น excel ด้วย php รองรับภาษาไทย
เขียนเมื่อ 14 ปีก่อน โดย Ninenik Narkdeeexcel ฐานข้อมูล ภาษาไทย php
คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ excel ฐานข้อมูล ภาษาไทย php
คำเตือน! เนื้อหาต่อไปนี้ เป็นเนื้อหาเก่า อาจจะไม่เหมาะสำหรับนำไปใช้งาน
หรือไม่สามารถใช้งานได้แล้ว
ลองดูที่ใหม่กว่า phpexcel เป็นแนวทางแทน
ลองดูที่ใหม่กว่า phpexcel เป็นแนวทางแทน
ไปที่ Copy
<? $connection=mysql_connect("localhost","root","") or die("เชื่อมต่อฐานข้อมูลไม่ได้"); mysql_select_db("thailocation") or die("ไม่สามารถเลือกฐานข้อมูลได้"); $q="select * from province order by province_id "; $qr=mysql_query($q); $row_num=mysql_num_rows($qr); $col_arr=array("Province ID","Province Name","Province Part"); $col_num=count($col_arr); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download");; header("Content-Disposition: attachment;filename=data.xls "); ?> <?php echo '<?xml version="1.0" encoding="windows-874"?>'; ?> <?php echo'<?mso-application progid="Excel.Sheet"?>';?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <Styles> <Style ss:ID="Default" ss:Name="Normal"> <Alignment ss:Vertical="Bottom"/> <Borders/> <Font x:CharSet="222"/> <Interior/> <NumberFormat/> <Protection/> </Style> </Styles> <Worksheet ss:Name="ข้อมูลจังหวัดในประเทศไทย"> <Table ss:ExpandedColumnCount="<?=$col_num?>" ss:ExpandedRowCount="<?=$row_num+1?>" x:FullColumns="1" x:FullRows="1"> <Row> <?php foreach($col_arr as $key=>$value){ ?> <Cell><Data ss:Type="String"><?=$value?></Data></Cell> <?php } ?> </Row> <?php while($rs=mysql_fetch_array($qr)){ ?> <Row> <Cell><Data ss:Type="Number"><?=$rs['province_id']?></Data></Cell> <Cell><Data ss:Type="String"><?=$rs['province_name']?></Data></Cell> <Cell><Data ss:Type="Number"><?=$rs['province_part']?></Data></Cell> </Row> <?php } ?> </Table> <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> <Selected/> <ProtectObjects>False</ProtectObjects> <ProtectScenarios>False</ProtectScenarios> </WorksheetOptions> </Worksheet> </Workbook>
การใช้งานและส่วนที่ต้องปรับแต่ง
<?php $connection=mysql_connect("localhost","root","") or die("เชื่อมต่อฐานข้อมูลไม่ได้"); mysql_select_db("thailocation") or die("ไม่สามารถเลือกฐานข้อมูลได้"); $q="select * from province order by province_id "; // ดึงข้อมูลที่ต้องการ $qr=mysql_query($q); $row_num=mysql_num_rows($qr); // หาจำนวนแถวของข้อมูล $col_arr=array("Province ID","Province Name","Province Part"); // กำหนดหัวข้อของข้อมูล $col_num=count($col_arr); // หาจำนวนหัวข้อของข้อมูล header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); // ให้ขึ้นดาวน์โหลด header("Content-Type: application/octet-stream"); header("Content-Type: application/download");; header("Content-Disposition: attachment;filename=data.xls "); // กำหนดชื่อไฟล์ ?>
ส่วนของการแสดงข้อมูลในตาราง Excel
<?php // วนลูปแสดงข้อมูลแต่ละแถวทั้งหมด ในที่นี้มี 3 คอลัมน์ // หากข้อมูลมีมากกว่า 3 จำเป็นต้องเพิ่มจำนวน Cell เข้าไป // โดเยเพิ่ม <Cell><Data ss:Type="Number">ฟิลด์ข้อมูล</Data></Cell> // สามารถกำหนดประเภทของข้อมูลว่าเป็น Type="Number" ตัวเลข หรือ Type="String" while($rs=mysql_fetch_array($qr)){ ?> <Row> <Cell><Data ss:Type="Number"><?=$rs['province_id']?></Data></Cell> <Cell><Data ss:Type="String"><?=$rs['province_name']?></Data></Cell> <Cell><Data ss:Type="Number"><?=$rs['province_part']?></Data></Cell> </Row> <?php } ?>
เพิ่มเติมเนื้อหา ครั้งที่ 1 วันที่ 27-06-2017
แก้ไข กรณีปัญหาภาษาไทย
ให้ set การตั้งค่าในส่วนของ การ query ฐานข้อมูล โดยเพิ่ม
เข้าไป เป็น
และบรรทัด
ให้เปลี่ยนเป็น
ให้ set การตั้งค่าในส่วนของ การ query ฐานข้อมูล โดยเพิ่ม
mysql_query("set character set utf8"); // กำหนดค่า character set ที่จะใช้แสดงผล
เข้าไป เป็น
$connection=mysql_connect("localhost","root","test") or die("เชื่อมต่อฐานข้อมูลไม่ได้"); mysql_select_db("thailocation") or die("ไม่สามารถเลือกฐานข้อมูลได้"); mysql_query("set character set utf8"); // กำหนดค่า character set ที่จะใช้แสดงผล
และบรรทัด
<?php echo '<?xml version="1.0" encoding="windows-874"?>'; ?>
ให้เปลี่ยนเป็น
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ

URL สำหรับอ้างอิง
Top
Copy
ขอบคุณทุกการสนับสนุน
![]()