我需要从网络上的 .mpp 文件中提取数据,并将其与来自多个不同数据库的其他数据相结合。该应用程序可以用 Perl、VB6、VB.net 或 C# 编写,但必须从基于 Windows 的服务器轻松调度。
你会推荐什么来提取 MS Project 数据而无需用户干预?
是否有适用于 MS Project 的任何 ODBC 驱动程序?
是否有用于打开 .mpp 和读取活动数据的模块(用于 Perl、VB、VB.net 或 C#)?
我需要从网络上的 .mpp 文件中提取数据,并将其与来自多个不同数据库的其他数据相结合。该应用程序可以用 Perl、VB6、VB.net 或 C# 编写,但必须从基于 Windows 的服务器轻松调度。
你会推荐什么来提取 MS Project 数据而无需用户干预?
是否有适用于 MS Project 的任何 ODBC 驱动程序?
是否有用于打开 .mpp 和读取活动数据的模块(用于 Perl、VB、VB.net 或 C#)?
我建议使用 MPXJ ( mpxj.sf.net ) 从 Microsoft Project 文件中提取数据。不要因为它最初是一个 Java 库而被推迟——由于 IKVM 的魔力,MPXJ 的当前版本包括本机 .net dll 以及原始 Java JAR 文件。
免责声明:我维护 MPXJ。
MPP 确实有自己的对象模型,可用于访问其中的数据。该信息应在此处提供:http: //msdn.microsoft.com/en-us/office/aa905469.aspx
为了读取 MPP 数据,您可以使用Aspose.Tasks for .NET。该组件是一个普通的 .NET 程序集,可以与任何 .NET 应用程序一起使用。它提供了简单的 API 来访问项目元素和数据。
披露:我在 Aspose 担任开发人员布道师。
我也有同样的需求。这是我到目前为止发现的。微软项目有一个 OLEDB 提供程序,最高版本为 MP 2007。如果谷歌它,有足够的站点引用连接字符串,但这里是一个引用:
oConn.Open "Provider=Microsoft.Project.OLEDB.9.0;" & _
"Project Name=c:\somepath\myProject.mpp"
这种方法的问题似乎是您必须在服务器上安装 MS Project。无论如何,这很麻烦,而且我不可能使用托管环境。
所以你要解析.mpp。正如上面一位评论者所说,MPXJ 是一个优秀的库,我可以等待,所以我正在等待他们发布 .NET 版本。如果您决心完成它,请获取代码并查看他们在做什么。除此之外,在他们的源代码/评论中,没有(据我所知)该格式的文档。