Microsoft Project Professional 是全球最受欢迎的项目管理软件,因为它可以帮助管理人员制定计划、为成员分配任务、跟踪任务进度、控制财务和时间表、传达项目信息以及以工作分解结构格式组织工作和人力,清楚地解释项目的任务及其分配给团队中特定资源的任务。但是,为了创建/更新时间表/计划,您需要使用 MS Project Professional 软件,这会产生安装工作量和许可成本。
MS Project Professional 替代品
Aspose.Tasks Cloud 是一款出色的解决方案,可用于创建、处理 MS Project 文件并将其渲染为其他受支持的格式。基于 REST API 的解决方案可灵活地使用任何平台和您选择的语言来实现所需的要求。它使用户能够在云中执行项目创建、调度、资源、任务和属性管理。Aspose.Tasks Cloud API 提供了如此大的灵活性,您可以直接处理项目分配、项目任务、项目资源、项目日历、项目日历例外、项目扩展属性、VBA、时间标度数据以及云项目的各种其他属性。
支持的文件格式
Aspose.Tasks Cloud for cURL 支持流行的 Microsoft Project (MPT、MPP、MPX) 和 Primavera P6 (XER、XML) 文件格式。该 API 还提供将您的云项目文件转换为业界领先文件格式的功能,包括 HTML、PDF、XPS、XLSX、CSV、TXT 和图像格式 (BMP、PNG、JPEG、TIFF、SVG)。
高级功能
除上述功能外,Aspose.Tasks Cloud API 还提供了一些高级功能,如下所示
- 从包括 Primavera DB 在内的数据库导入项目
- 重新安排所有项目任务 ID、开始/完成日期、计算空闲时间
- 使用 UID 获取特定任务的时间尺度数据或重复信息
- 使用蒙特卡罗模拟进行风险分析并创建报告
- 管理项目的工作分解结构(WBS)
- 重新计算项目工作的完成或未完成情况
- 阅读 Microsoft Project 的日历 and Calendar Exceptions information.
安装
下面指定的是如何在 Visual Studio for Mac 中安装 Aspose.Tasks Cloud SDK for .NET 的步骤。
- 展开解决方案资源管理器窗口下的项目结构。
- 右键单击包文件夹,然后单击管理 NuGet 包… 选项
- 在搜索字段中输入 Aspose.Tasks Cloud,然后按回车键
- 启用 Aspose.Tasks Cloud 旁边的复选框并单击添加包按钮
- SDK 已添加到项目包中
读取 MS 项目属性
这些属性用于存储有关项目的元数据,例如标题、主题、作者、经理、公司、关键字和项目说明。当您或其他人几个月或几年后再次访问此项目文件时,这些属性在搜索您的项目或作为参考时非常有用。
cURL 命令
可以使用 cURL 命令在任何平台上通过控制台/命令提示符读取项目属性。使用相同的 cURL 命令,您可以读取与项目文件相关的属性,如下所示。
curl -v "https://api.aspose.cloud/oauth2/token" \
-X POST \
-d 'grant_type=client_credentials&client_id=xxx-xxx-xxx&client_secret=xxxxx' \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
curl -X GET "https://api.aspose.cloud/v3.0/tasks/sample.mpp/documentproperties" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
请求 URL
https://api.aspose.cloud/v3.0/tasks/sample.mpp/documentproperties
该API还提供读取与文件相关的单独属性的功能。
curl -X GET "https://api.aspose.cloud/v3.0/tasks/sample.mpp/documentproperties/LastAuthor" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
请求 URL
https://api.aspose.cloud/v3.0/tasks/sample.mpp/documentproperties/LastAuthor
响应主体
{
"Property": {
"Name": "LastAuthor",
"Value": "Alexey Zhilin",
"link": {
"Href": "/documentProperties/LastAuthor",
"Rel": "self",
"Type": null,
"Title": null
}
},
"Code": 200,
"Status": "OK"
}
C#.NET
// 有关完整示例和代码文件,请访问https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-dotnet/
const string clientID = "xxxx-xxxx-xxxx-xxxxx";
const string clientSecret = "xxxxxxxxx";
// 初始化 TasksApi 对象
Aspose.Tasks.Cloud.Sdk.TasksApi tasksApi = new Aspose.Tasks.Cloud.Sdk.TasksApi(clientSecret, clientID);
// 检索与项目文档相关的属性
var retrievedProperties = tasksApi.GetDocumentPropertiesAsync(new GetDocumentPropertiesRequest
{
Name = "sample.mpp",
});
// 遍历根据文档检索到的属性列表并打印它们的值
for(int counter= 0; counter< retrievedProperties.Result.Properties.List.Count; counter++)
{
Console.WriteLine("Property name at index " + counter + " = "+retrievedProperties.Result.Properties.List[counter].Name);
Console.WriteLine("Property value at index " + counter + " = "+retrievedProperties.Result.Properties.List[counter].Value);
}
如果您需要获取与某个属性相关的值,请尝试使用以下代码片段
var response = tasksApi.GetDocumentPropertyAsync(new Aspose.Tasks.Cloud.Sdk.Model.Requests.GetDocumentPropertyRequest
{
Name = "sample.mpp",
PropertyName = "LastAuthor"
});
Console.WriteLine(response.Result.Property.Value );
供您参考,可以从给定的链接下载 sample.mpp 的副本。
将 MS Project 文件转换为其他格式
Aspose.Tasks Cloud 提供了一种方法 GetTaskDocumentWithFormat(..),可以读取 MS Project 文件并将其保存为以下任一受支持的格式
- 项目管理
- 网页
- 光栅图像
- 页面描述
- 电子表格
- 网页设计
将 MPP 渲染为 PNG 格式
以下 cURL 命令提供读取云存储中的 MS Project 文件存储并以 PNG 格式呈现输出的功能。然后输出将保存在本地存储中。
cURL 命令
curl -X GET "https://api.aspose.cloud/v3.0/tasks/CalendarWorkWeeks.mpp/format?format=png&returnAsZipArchive=false" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-o resultant.png
上述示例使用的示例项目文件可以从 CalendarWeek.mpp 下载。
C#.NET
Aspose.Tasks Cloud SDK for .NET 可专门用于 .NET 项目中处理 MS Project 文件。通过使用相同的 SDK,您可以实现将 .mpp 文件渲染为 .png 或其他受支持格式(如上所述)的要求。
- 首先,我们需要实例化 TasksApi 的对象,同时传递 ClientSecret 和 ClientID 作为输入参数
- 其次,调用 TasksApi 的 GetTaskDocumentWithFormat (…) 方法,同时传递 GetTaskDocumentWithFormatRequest 对象
- 使用 GetTaskDocumentWithFormatRequest 对象指定导出格式信息。该值可从 ProjectFileFormat 枚举中访问
// 完整示例和数据文件请见https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-dotnet/
// 初始化 TasksApi 对象
Aspose.Tasks.Cloud.Sdk.TasksApi tasksApi = new Aspose.Tasks.Cloud.Sdk.TasksApi(clientSecret, clientID);
// 调用方法执行转换
var resultantOutput = tasksApi.GetTaskDocumentWithFormat(new Aspose.Tasks.Cloud.Sdk.Model.Requests.GetTaskDocumentWithFormatRequest
{
Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Png,
Name = "Home move plan.mpp",
});
// 调用方法保存结果文件
saveToDisk(resultantOutput, "Converted.png");
public static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0,SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
供您参考,上述示例中使用的源 MPP 文件可以从 Home move plan.mpp 下载。