以编程方式从C#访问Microsoft Project(MPP)文件

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

我基本上需要将文件中的所有数据导入另一个数据结构。 使用Office Interop程序集的优先级较低。

以下是选项:

  1. Interop(大型项目的混乱和非常缓慢)
  2. 以XML格式保存项目并使用它(凌乱)
  3. 将项目保存在数据库中(不发布,仅适用于Project 2003 – 保存时请参阅ODBC选项)。 我已经看到它在集成场景中被大量使用了
  4. Projette (商业,每个许可证10美元)
  5. ILog项目查看器 (也是商业)

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

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

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

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

披露:我在Aspose担任开发人员传播者。

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

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

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