【发布时间】:2010-01-04 17:23:12
【问题描述】:
我需要从 word 模板创建一个 word 文档,类似于,我们需要用值替换模板中的几个字符串(比如变量)。
请告诉我们如何在 PHP(或 cakePHP)中做到这一点。
【问题讨论】:
我需要从 word 模板创建一个 word 文档,类似于,我们需要用值替换模板中的几个字符串(比如变量)。
请告诉我们如何在 PHP(或 cakePHP)中做到这一点。
【问题讨论】:
您将遇到的最大问题是.doc 格式本质上是二进制的(请参阅this question 和this post by Joel)。
您是否有任何原因不能使用 HTML 格式的文档(哪个单词可以打开 10 多年)或Rich Text File?这两者都是基于文本的,并且会大大减轻您的痛苦。因此,它们非常易于与模板一起使用。
或者,如果您可以确定用户将拥有更新版本的 Office (2007+),那么您可以使用 .docx 文档,虽然这有点棘手,但它实际上是一个 Zip 存档和 XML 数据.您可以通过创建一个包含您需要的模板的.docx word 文件,将其重命名为.zip,提取文件,教您的应用程序在这个就地文件结构上进行文本替换,来相当简单地实现这一点,重新使用PHP's ZipArchive class 压缩它,然后发送该文件(当然命名为.docx)。
【讨论】:
我认为这会对你有所帮助
docxtemplater-master
从模板生成 docx, https://github.com/edi9999/docxtemplater
phpdocx
用于动态生成 docx 格式的 Word 文档的 PHP 库。
【讨论】:
查看http://www.phpbuilder.com/annotate/message.php3?id=1024286 以及它的文章。
当我需要生成一个简单的 Excel 表格时,我做了一个类似的技巧。发送正确的标头时,客户端的 excel 根本没有抱怨。或者,如果您可以直接使用其他格式,请使用它。 (.docx 或打开的文档是压缩的 xml,因此您可以更轻松地对其进行操作)
【讨论】: