2011-07-22 109 views
0

我想在Windows和Linux操作系統上使用PHP將數據導出到MS Word文件。我寫了下面的代碼。使用PHP導出到MS-Word

header("Content-type: application/vnd.ms-word"); 
header("Content-Disposition: attachment;Filename=document_name.doc"); 

echo "<html>"; 
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">"; 
echo "<body>"; 
echo '<table cellpadding="0" cellspacing="0" border="0" width="100%">'; 
echo '<tr><td>test data</td></tr>'; 
echo '</table>'; 
echo "</body>"; 
echo "</html>"; 

我有當與MS Office 2007打開微軟Word文件正確無表格邊框但是,如果我與MS Office 2003中打開它,然後我有一個表格邊框的MS Word文檔=「1」。

我該如何解決這個問題?

+0

嘗試添加style ='border:0' – Eddie

+0

我已經嘗試了通過添加'style =「border:0」'。但是,沒有任何豐碩的成果。 – Pradip

+0

如果您使用的是sytles,那麼正確的格式將是'style =「border-width:0」' –

回答

0

您正在通過HTTP標頭指出您正在發送一個word文檔(mime type applciation/vnd-ms-word),但是實際上是將HTML輸出到該文檔中。如果在文本編輯器中打開生成的.doc文件(記事本是一個合理的選擇),則會看到它實際上是一個名爲.doc的HTML文件。 Word可以解析這一點,但格式化的可能性非常有限 - 它不能理解適當的Web瀏覽器能理解的所有內容。

相反,您需要將輸出實際轉換爲word文檔格式。我不會推薦手動做這個。如果您在Windows上運行,則可以使用COM創建文檔。在Linux上,你運氣不好,需要使用第三方庫。看看Zend的LiveDocx框架:http://www.phplivedocx.org/articles/brief-introduction-to-phplivedocx/

+0

感謝您的建議。我讀過那篇文章。這是非常好的文章。以上功能是我整個項目的一小部分。所以,很難在上面的功能中包含Zend框架。 – Pradip