PHP Ionic Angular Phonegap AJAX Javascript CSS MySQL jQuery Forum


ดึงข้อมูลจากฐานข้อมูลเป็น excel ด้วย php รองรับภาษาไทย

31 March 2009 By
ฐานข้อมูล excel ภาษาไทย php

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ ฐานข้อมูล excel ภาษาไทย 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 "); 
?>
<?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 ฐานข้อมูล โดยเพิ่ม 

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"?>'; ?>






Tags:: php ฐานข้อมูล ภาษาไทย excel






อย่าลืมกด Like กด Share เป็นกำลังใจ ในการสร้างบทความใหม่ๆ น่ะครับ


URL สำหรับอ้างอิง