我想在Windows和Linux操作系统上使用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打开时,我没有正确的MS Word文件。但是,如果我用MS Office 2003打开它,那么我的MS Word文件的表格边框='1'。
如何解决此问题?
答案 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/