Экспорт в MS-Word с использованием PHP - PullRequest
0 голосов
/ 22 июля 2011

Я хочу экспортировать данные в файл MS Word, используя PHP в операционной системе Windows и Linux. Я написал следующий код.

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'.

Как я могу исправить эту проблему?

1 Ответ

0 голосов
/ 22 июля 2011

Вы указываете через HTTP-заголовки, что отправляете документ Word (mime-тип applciation / vnd-ms-word), однако вы фактически выводите HTML в этот документ.Если вы откроете получившийся файл .doc в текстовом редакторе (разумный выбор - блокнот), вы увидите, что на самом деле это файл HTML с именем .doc.Word может это проанализировать, но возможности форматирования очень ограничены - он не понимает всего, что понимает надлежащий веб-браузер.

Вместо этого вам нужно будет фактически преобразовать вывод в формат документа Word.Я бы не рекомендовал делать это вручную.Если вы работаете в Windows, вы можете использовать COM для создания документа.В Linux вам не повезло, и вам нужно будет использовать стороннюю библиотеку.Взгляните на Zend LiveDocx Framework: http://www.phplivedocx.org/articles/brief-introduction-to-phplivedocx/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...