2011-07-22 69 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