ตัวอย่าง script นะครับ
<?php
header("Content-Type: application/vnd.ms-excel");
header('Content-Disposition: attachment; filename="MyXls.xls"');#ชื่อไฟล์
?>
<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 
">
<HTML>
<HEAD>
<meta http-equiv="Content-type" content="text/html;charset=tis-620" />
</HEAD><BODY>
<TABLE x:str BORDER="1">
<TR>
<TD><b>AAA</b></TD>
<TD><b>AAA</b></TD>
<TD><b>AAA</b></TD>
</TR>
<TR>
<TD>BBB</TD>
<TD>BBB</TD>
<TD>BBB</TD>
</TR>
<TR>
<TD>001</TD>
<TD>002</TD>
<TD>003</TD>
</TR>
<TR>
<TD>ภาษาไทย</TD>
<TD>ภาษาไทย</TD>
<TD>ภาษาไทย</TD>
</TR>
</TABLE>
</BODY>
</HTML>
อันนี้ใช้งานได้ชัวร์ครับ ผมใช้จากตรงนี้แหละ
ข้อมูลเพิ่มเติม ครับ
http://www.memo8.com/toolkits/archives/78 
แต่ปัญหาเกิดคือ

แถวบ้านผมเรียก ศูนย์ เสีย ครับ เลข สังเกิต member_id จะเป็น 00000014 แต่ ด้วยความ ฉลาดและแสนรู้ของโปรแกรม มันจึงตัดเลข 0 ออกไป เพราะคิดว่าเป็น Integer
ผมก็เลยลองไปหาวิธีแก้มาได้มา 2 แนวทางครับ
ใช้ pack() แต่ไม่ได้ผลเพราะใช้ไม่เป็น
ใช้ script ตัวนี้เลยครับ
http://www.bettina-attack.de/j...ds/php_writeexcel-0.3.0.tar.gz 
ใช้งานได้ดีครับ มี ใส่ภาพได้ merg cell ได้ ฯลฯ ลองใช้งานดูครับ
แต่ว่า วิธีที่ 2 นี่มันต้องแก้ script ครับ ผมเลยไม่อยากลื้อ เลยนั่งคิดซักพัก ได้ idea นี้มาครับ
เติม ใส่หน้าข้อความครับ ผลปรากฎว่าได้ผลดีซะด้วยครับ เร็วและง่ายกว่าที่คิดครับ

ผลลัพธ์ที่ได้ครับ
ปล ถ้าถูกใจก็ thk หน่อยนะครับมีอีกหลาย เทคนิคอยู่เลยแต่ยังไม่เวลาเขียน ( เพื่อคนอื่นยังไม่รู้ )