การเขียน PHP ให้ออกรายงาน เป็น MS Word

เผื่อมีประโยชน์กับหลายๆคนครับรวมทั้งตัวผมด้วย ^^

ค้นพบ วิธีการเขียน PHP ให้ออกรายงาน เป็น MS Word โดยไม่ได้ใช้คำสั่ง COM
วิธีการไม่ซับซ้อน ไม่ต้องมีไฟล์เสริม จัดรูปแบบ(สี ขนาด ชนิดตัวอักษร) ได้ตามต้องการเท่าที่เครื่องคอมพิวเตอร์ ของผู้ใช้แสดงได้
ง่ายกว่า รายงานเป็น PDF อย่างเห็นได้ชัด
รู้แล้วจะร้อง ฮ้า ง่ายขนาดนั้นเชียว หรือ ???
ทดสอบแล้วว่าสามารถใช้งานได้จริง
ไม่ต้องส่งเงินมา \o/
***********************
เฉลย สร้าง PHP ไฟล์ กำหนดเพิ่ม 2 บันทัดข้างล่างนี้ ไว้ที่หัวไฟล์

<?
header(“Content-Type: application/msword”);
header(‘Content-Disposition: attachment; filename=”docsfile.doc”‘);
?>

แล้ว เอา HTML code ที่ต้องการ (จัดรูปแบบ ใส่ตาราง ใส่สี กำหนดตัวอักษร ตามชอบ)วางต่อ ข้างล่าง
แล้วเรียก ไฟล์ PHP ….. Work ครับ Work
ของแถมเทคนิค เสริมก็คือ นำไฟล์ หรือสร้างใหม่ หน้ารายงานเอกสารด้วย MS Word แล้ว save เป็น HTML
แล้ว ใช้ Web Editor เช่น Maromedia Dreamweaver ตกแต่งอีกเล็กน้อย
แก้ไข-เพิ่มเติม ส่วนของข้อมูลที่ได้มาจากการ query ลงไปในรายงานตามตำแหน่งที่สมควร
แนะนำให้ใช้ ตารางช่วยในการจัดรูปแบบเอกสาร และควรคล่อมทั้งเอกสารด้วยตารางกว้างขนาดประมาณ หน้าเอกสารที่ต้องการ
แบ่งเป็น 2 columns โดย column ซ้ายเป็น Left margin ของกระดาษ แล้วเอาตัวเอกสารไว้ column ขวา ไม่เช่นนั้น รายงานจะใหญ่ ตามหน้าจอ
สรุปก็คือ ใช้เอกสารช่วยจัดหน้ารายงานเหมือนที่ต้องทำให้ หน้าเว็บโดยทั่วไปครับ

ตัวอย่าง

<? // report1.php
header(‘Content-type: application/ms-word’);
header(‘Content-Disposition: attachment; filename=”filename.doc”‘);
?>
<html>
<head>
……………………….
</head>
<body’>
<center>
<table width=”800″ border=”0″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td width=”10%”> <!– left margin //–></td>
<td width=”90%”>
<!– Queried Report //–>
.
</td>
</tr>
</table>
</center>
</body>
</html>

ผลข้างเคียง

ในการจัดรูปแบบเอกสาร ต้องใช้ตารางช่วย โดยต้องออกแบบใน Macromedia Dreamweaver MX 2004 หรือ HTML Editor ใด ๆ ที่มีลิขสิทธิถูกต้องเท่านั้ัน (มิฉะนั้น เอกสารที่ได้จะไม่สวยงาม หรืออยู่ในรูปแบบที่ต้องการ) และหากเอกสารมีรูปต้องแสดง path แบบเต็ม ๆ เท่านั้น

ขอบคุณสำหรับความรู้
ที่มาแหล่งความรู้จาก http://gotoknow.org/blog/myprogram/216997

Comments are closed.