【问题标题】:Parsing and generating Microsoft Office 2007 files (.docx, .xlsx, .pptx)解析和生成 Microsoft Office 2007 文件(.docx、.xlsx、.pptx)
【发布时间】:2010-09-15 10:52:42
【问题描述】:

我有一个网络项目,我必须从用户提供的文档中导入文本和图像,其中一种可能的格式是 Microsoft Office 2007。还需要生成这种格式的文档。

服务器运行 CentOS 5.2 并安装了 PHP/Perl/Python。如果必须,我可以执行本地二进制文件和 shell 脚本。我们使用 Apache 2.2,但一旦上线就会切换到 Nginx。

我有哪些选择?有人有这方面的经验吗?

【问题讨论】:

    标签: php python perl parsing office-2007


    【解决方案1】:

    Office 2007 文件格式是开放的,well documented。粗略地说,所有以“x”结尾的新文件格式都是 zip 压缩的 XML 文档。例如:

    打开 Word 2007 XML 文件 存放文件的临时文件夹 文件及其部分。

    保存一个 Word 2007 文档,其中包含 文字、图片和其他元素,如 .docx 文件。

    在文件末尾添加 .zip 扩展名 文件名。

    双击文件。它将在 邮编应用程序。你可以看到 组成文件的部分。

    将零件解压到文件夹中 你之前创建的。

    其他文件格式大致相似。我还不知道有任何开源库可以与它们进行交互——但根据您的具体要求,阅读和编​​写简单的文档看起来并不难。当然,它应该比使用旧格式要容易得多。

    如果您需要阅读较旧的格式,OpenOffice 有一个 API,可以读取和写入 Office 2003 和较旧的文档,或多或少成功。

    【讨论】:

      【解决方案2】:

      python docx 模块可以从纯 Python 生成格式化的 Microsoft Office docx 文件。开箱即用,它可以处理标题、段落、表格和项目符号,但 makeelement() 模块可以扩展为处理图像等任意元素。

      from docx import *
      document = newdocument()
      
      # This location is where most document content lives 
      docbody = document.xpath('/w:document/w:body',namespaces=wordnamespaces)[0]
      
      # Append two headings
      docbody.append(heading('Heading',1)  )   
      docbody.append(heading('Subheading',2))
      docbody.append(paragraph('Some text')
      

      【讨论】:

        【解决方案3】:

        我已成功在项目中使用OpenXML Format SDK 通过代码修改 Excel 电子表格。这需要 .NET,我不确定它在 Mono 下的工作情况。

        【讨论】:

          【解决方案4】:

          您可能可以检查Sphider 的代码。他们提供文档和 pdf,所以我相信他们可以阅读。也可能会引导您朝着其他 Office 格式的正确方向发展。

          【讨论】:

            猜你喜欢
            • 2016-09-06
            • 1970-01-01
            • 1970-01-01
            • 2011-03-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-05
            相关资源
            最近更新 更多