在 PHP 中将数据插入到 .docx 和 .odt

Posted

技术标签:

【中文标题】在 PHP 中将数据插入到 .docx 和 .odt【英文标题】:Insert data to .docx and .odt in PHP 【发布时间】:2011-10-07 11:32:07 【问题描述】:

我们将数据库中的数据插入到 word 文档 (Word 2007) 中。里面有表格,每组数据都应该在一个单独的页面上。 现在phpWord 很好地满足了我们的需求。但是我们的一些客户使用 OpenOffice.org,而 PHPWord 似乎无法创建 100% 正确的 Word 文档。 Word 可以处理这些错误,但 OpenOffice 不能。 所以,我的问题是:是否有任何其他优秀的 PHP 库可以创建编辑器都可以阅读的文档,还是更好地为 Word 使用一个库,为 OpenOffice.org 使用另一个库? (对于 OpenOffice.org,我会使用 http://www.odtphp.com/)。我更喜欢使用创建 Word 文档的单个库。

【问题讨论】:

【参考方案1】:

好的,我们找到了解决方案。我会把它写在这里以防万一有人遇到同样的问题。 这些文件在 OpenOffice.org 中格式错误,因为 PhpWord 使用空格和换行符格式化 xml。 Word 会删除此行并显示文档的应有状态,但 OOo 会为文档中显示的 xml-doc 中的每个换行符插入一个换行符。更改 Shared/XMLWriter.php 中的第 79 行和第 84 行就可以了。

// Set default values
// proposed to be false in production version
$this->_xmlWriter->setIndent(true);
//$this->_xmlWriter->setIndent(false); 

// Set indent
// proposed to be '' in production version
$this->_xmlWriter->setIndentString('  ');
//$this->_xmlWriter->setIndentString('');

【讨论】:

以上是关于在 PHP 中将数据插入到 .docx 和 .odt的主要内容,如果未能解决你的问题,请参考以下文章

如何在PHP中将接受/拒绝插入到db中

如何在 php 中将数组值作为键值对插入到数据库表中

在php中将最后一个id插入变量发送到另一个页面[重复]

如何在php中将动态数组插入数据库?

如何在php中将变量数组单独插入数据库?

在php中将数据从选中的复选框保存到数据库中的一行