【问题标题】:Programmatically access a Microsoft Project (MPP) file from C#从 C# 以编程方式访问 Microsoft Project (MPP) 文件
【发布时间】:2010-09-14 07:02:12
【问题描述】:

我有哪些以编程方式访问 Microsoft Project 文件的选项?每种方法的优缺点是什么?

我基本上需要将文件中的所有数据导入另一个数据结构。使用 Office 互操作程序集的偏好规模较低。

【问题讨论】:

    标签: c# ms-project


    【解决方案1】:

    MPXJ (mpxj.sf.net) 库具有 Java 和 .Net 两种风格,允许您使用单一一致的 API 读取和写入多种 Microsoft Project 文件格式。我知道使用 Java 和 .Net 版本的 MPXJ 的商业产品没有任何问题。

    免责声明:我是 MPXJ 的维护者。

    【讨论】:

    • 您好乔恩,感谢您的回复。只是想知道我们是否可以使用 MPXJ 安排任务的开始/结束日期。就像假设我添加了 3 个任务。任务 1,任务 2。任务 3 和任务 2 具有从完成到开始的依赖关系,而任务 3 具有从完成到完成的依赖关系......如何根据我添加的依赖关系重新计算它们的开始/完成日期?
    • 看看 MPXJ - 这太棒了!!谢谢乔恩,这是一个非常伟大和有用的贡献。不仅保存了我的一天,还保存了多年的用户数据。
    • 它在控制台应用程序中工作,但当我尝试从 SharePoint 文档库中读取文件时,它无法在事件接收器中工作。
    • @Akshay 在github.com/joniles/mpxj 打开一个问题,找出原因会很有用。
    • @ChrisHarper 是正确的。 MPXJ 不写入 MPP 文件。我相信 Aspose Tasks 为编写 MPP 文件提供了一些支持。
    【解决方案2】:

    您可以使用Aspose.Tasks for .NET。该组件允许您work with Microsoft Project files。与 Office Interop 不同,它不需要在服务器上安装 MS Office。 API 非常简单易用。它提供了一组丰富的功能来读取、编辑、写入和转换 MPP 文件。

    此组件是一个普通的 .NET 程序集,可用于您的 .NET 应用程序。它适用于任何 Windows 操作系统以及 32/64 位环境。

    披露:我在 Aspose 担任开发布道师。

    【讨论】:

      【解决方案3】:

      以下是选项:

      1. 互操作(对于 大型项目)
      2. 以 XML 格式保存项目并使用它 (凌乱)
      3. 在数据库中保存项目(即 不发布并且可用 仅适用于项目 2003 - 请参阅 ODBC 保存时选择)。我已经看到了它 在集成中被大量使用 场景
      4. Projette(商业,10 美元/ 许可证)
      5. ILog Project Viewer(也 商业)

      【讨论】:

      • Projetty 网站打不开 :(
      【解决方案4】:

      Microsoft Office API 提供对 MS Project 的编程访问。我只将它用于 Word 和 Excel,所以我不知道界面有多丰富 - 你必须在 MSDN 上进行一些挖掘,以找出你能做什么和不能做什么。

      我公司的一个 Java 项目使用 Aspose 的商业产品,它允许应用程序操作包括 Project 在内的 Office 文档。它适用于他们的目的,但同样,他们只将它用于 Word 和 Excel,因此无法对 Project 提供太多建议。

      EDIT (2019):我可以确认它是一款非常强大的产品。

      【讨论】:

        【解决方案5】:

        Sourcefourge.net 提供了一个 Java 组件,它可以与 .net 应用程序集成以读取 MPP 文件,直到 MPP 2007 链接是 http://mpxj.sourceforge.net/getting-started.html

        【讨论】:

          猜你喜欢
          • 2020-04-05
          • 2013-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-27
          • 1970-01-01
          • 2021-07-26
          • 2019-06-29
          相关资源
          最近更新 更多