
MPP 是 Microsoft Project 的主要格式之一,通常用于存储工作量、计划和财务。自 1984 年 Microsoft Project 早期发布以来,它一直用于管理项目、制定计划、设定预算和分配资源。因此,MPP 格式是与 Microsoft Project 关联的本机文件类型,并在保存项目时存储项目信息。同样,XER 文件格式是 Primavera P6 项目规划和管理应用程序使用的专有项目文件格式。因此,如果需要将 MPP 文件转换为其他格式,我们需要安装和配置本地解决方案或选择基于云的解决方案。
Microsoft Project 处理 API
Microsoft Project 和 Primavera P6 是用于项目分配、任务、资源、日历、属性和计划信息的流行文件格式。为了方便我们的客户以编程方式处理这些文档,我们开发了 Aspose.Tasks Cloud API,这是一种基于 REST 的解决方案,可让您获取项目分配项、向项目添加新分配、获取项目的所有任务、更改任务位置、向项目添加日历、获取时间刻度数据等等。无需安装任何第三方软件即可执行所有这些操作。
此外,我们还开发了 Aspose.Tasks Cloud SDK for .NET,它是 Aspose.Tasks Cloud 的包装器,使您能够在 .NET 应用程序中实现所有与项目管理相关的任务。
安装
要使用 .NET Cloud SDK,第一步是在系统上安装它。它可以通过 NuGet 和 GitHub 下载。请在终端中执行以下命令通过 NuGet 安装 SDK:
nuget install Aspose.Tasks-Cloud
如果您需要从 NuGet 包管理器安装,请执行以下命令:
PM> Install-Package Aspose.Tasks-Cloud
Visual Studio 方法
另一种方法是直接在 Visual Studio 中安装:
- 打开解决方案资源管理器。
- 展开项目并右键单击解决方案中的“包”文件夹。
- 选择管理 NuGet 包… 选项。
- 单击浏览选项卡并搜索“Aspose.Tasks-Cloud”。
- 单击 Aspose.Tasks-Cloud 包旁边的复选框,在右侧选项卡中选择适当的版本,然后单击添加包按钮。

Image 1:- Aspose.Tasks-Cloud as NuGet package.
免费云订阅
为了访问云 API,我们首先需要创建一个免费的云订阅帐户。是的,你没听错。免费订阅帐户最多可提供 150 个免费文档处理请求。无需信用卡或其他付款详细信息。因此,为了完成此过程,请访问 Aspose.Cloud 仪表板。如果您有 GitHub 或 Google 帐户,只需注册即可。否则,单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板并从仪表板展开应用程序部分,然后向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

图片 2:- Aspose.Cloud 仪表板上的客户端凭证。
使用 C# 中的 MPP 到 XER
请按照以下步骤将 MPP 文件转换为 C# .NET 应用程序中的 Primavera P6 XER。
- 首先,创建一个配置对象,同时提供客户端 ID 和客户端密钥详细信息。
- 其次,创建 TasksApi 的对象并传递 Configuration 对象作为参数。
- 第三,使用 TasksApi 的 UploadFile(..) 方法从本地驱动器读取 MPP 文件并上传到云存储。
- 现在创建一个 GetTaskDocumentWithFormatRequest 的对象,我们在其中定义输入 MPP 名称和从 ProjectFileFormat 枚举中得到的结果格式。
- 然后我们调用TasksApi的GetTaskDocumentWithFormat(…)方法来启动转换过程。
- 最后,为了将输出 XER 保存在本地驱动器上,我们在 saveToDisk(…) 方法中使用 File.Create 对象。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";
// 创建配置对象
var config = new Configuration{ AppSid= clientID, AppKey = clientSecret };
// 初始化 Aspose.Tasks 对象
var tasksApi = new TasksApi(config);
String inputFile = "Home move plan.mpp";
String resultant = "Output.xer";
try
{
// 从本地存储读取输入 MPP 文件
using (var inputStream = new FileStream("/Users/nshahbaz/Downloads/" + inputFile, FileMode.Open))
{
var uploadFileRequest = new PostCreateRequest(inputFile, inputStream);
// 将文件上传至云存储
tasksApi.UploadFile(uploadFileRequest);
}
// 初始化 MPP 到 XER 的转换过程
var response = tasksApi.GetTaskDocumentWithFormat(new GetTaskDocumentWithFormatRequest
{
Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xer,
Name = inputFile,
Folder = null,
});
if (response != null )
{
Console.WriteLine("Successfully converted MPP to XER !");
}
// 将结果文件保存在本地驱动器上
saveToDisk(response, "/Users/nshahbaz/Downloads/" + resultant);
}
catch (Exception ex)
{
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
public static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
使用 cURL 将 MPP 转换为 Primavera P6
cURL 命令是通过命令行终端访问 REST API 的另一种便捷方式。因此,我们也可以通过 cURL 命令访问 Aspose.Tasks Cloud 并实现我们的要求。但是,在访问 API 之前,我们需要根据从 Aspose.Cloud 仪表板 检索到的 ClientID 和 ClientSecret 详细信息生成 JSON Web Token (JWT)。请在终端中执行以下命令以生成 JWT 令牌。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
一旦生成 JWT 令牌,请执行以下命令将云存储中可用的 MPP 文件转换为 XER 格式。
curl -X GET "https://api.aspose.cloud/v3.0/tasks/Home%20move%20plan.mpp/format?format=xer&returnAsZipArchive=false" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-o Converted.xer
上述示例中使用的示例文件可从 Home move plan.mpp 下载。
结论
在本文中,我们讨论了如何使用 C# .NET 代码片段以及使用 cURL 命令将 Microsoft Project (MPP) 文件转换为 Oracle Primavera P6 XER 文件的步骤。此外,许可机制设计得非常灵活,您只需为使用我们服务的时间间隔付费。此外,在免费帐户订阅下,您最多可以免费获得 150 个文档处理请求。因此,一旦您对 API 感到满意,您可以考虑选择非常灵活的许可证购买。您只需为向服务器发出的请求付费,费用低至 0.005 美元/API 调用。您可以访问 定价 页面了解更多详情。
尽管如此,我们的 Cloud SDKS 是在 MIT 许可证 下开发的,因此可以从 GitHub 下载其完整代码片段。如果您在使用 API 时遇到任何问题或有任何相关疑问,请随时通过 免费支持论坛 与我们联系。
相关文章
我们还建议您访问以下链接以了解更多信息: