代码之家  ›  专栏  ›  技术社区  ›  aviv

从PHP操作Microsoft Word Office 2007.docx文档

  •  1
  • aviv  · 技术社区  · 15 年前

    我需要php中的一个选项来操作.docx(MicrosoftOffice2007)文档。

    我需要:

    1. 阅读内部文本
    2. 转换为.html
    3. 在浏览器中查看它们。
    4. 替换文本。

    我知道我可以使用Word自动化,创建一个Microsoft Word的COM对象,但是它太慢,不稳定,我必须在服务器上安装它。

    有没有任何库或代码可以从PHP中实现?

    5 回复  |  直到 11 年前
        1
  •  2
  •   Sarfraz    15 年前

    PHPWord 这是phpexcel的作者写的。

        2
  •  1
  •   jmz    15 年前

    docx只是一个包含多个XML文件和嵌入媒体文件(如图像)的zip文件。因此,您可以轻松地阅读和编辑文档。只需解压缩,打开word/document.xml,进行读写操作,然后重新打包文件。

    转换为HTML可能很困难。但您可以在docprops/thumbnail.jpeg中找到第一页的缩略图。

    请注意,您必须熟悉XML结构才能进行任何复杂的编辑。有一个概要XML docprops/app.xml,其中包含一些文件的元数据,所以不要忘记更新它。从维基百科了解更多: http://en.wikipedia.org/wiki/Office_Open_XML

        3
  •  0
  •   Eduardo    12 年前

    你可以看看 PHPDocX 我相信这是你所要求的。

    1. 您可以替换模板中的变量,或者只替换预先存在的Word文档中的纯文本。
    2. 它提供了相当多的转换选项。
    3. 您还可以提取文本。
        4
  •  0
  •   Scott Davey    11 年前

    您可以直接使用内部格式。

    docx只是一个zip文件,里面有包含实际文档的word/document.xml。

    解压文件、读取document.xml、str_replace()您要查找的内容、保存它并重新压缩目录是非常简单的,它为Word文档提供了一种轻量级、快速且简单的邮件合并功能。这也适用于其他Office格式。

    这里是 official docs on the internal structure 更多信息。

        5
  •  0
  •   bkudrle    11 年前

    还有一个用于将新内容合并到现有.docx文件中的PHP类。这里有: http://www.tinybutstrong.com/ . 该文档非常好,并且有许多示例,而且都是免费的、开源的。不过,它确实需要熟悉.docx概念。