使用Java以编程方式创建MS Project文件

拟墨画扇 提交于 2021-01-15 12:50:23

MS Project是一个著名的项目管理应用程序,它使管理人员更容易有效地执行项目管理活动。项目经理可以创建任务,添加资源以及将任务分配给特定项目中的资源。此外,他们可以定义时间表并执行预算管理操作。但是,当经理需要自定义项目管理操作时,可能会出现各种情况。同样,组织可能需要在Web或桌面应用程序内自动化项目管理。

对于这种情况,本文介绍如何以编程方式执行基本的项目管理操作。特别是,将学习如何从头开始创建项目,添加任务和资源以及如何使用Java处理资源分配和日历。

  • 使用Java从头开始创建MS Project文件
  • 将任务添加到项目
  • 向项目添加资源
  • 将任务分配给项目中的资源
  • 将日历添加到项目

Aspose.Tasks是一个项目管理API,可让您从头开始创建MS Project文件。此外,您可以操纵现有项目以添加一些修改。该API使您可以无缝地执行基本以及高级项目管理操作。如果你还没有用过Aspose.Tasks可以点击这里下载最新版测试。


使用Java创建MS Project文件

MS Project允许您以MPP或XML格式保存与项目相关的数据。因此,让我们开始按照以下步骤创建一个空的项目文件。

  • 创建一个Project 类的实例 。
  • 使用Project.save(String,SaveFileFormat) 方法保存文件 。

下面的代码示例演示如何使用Java创建MS Project(.mpp和.xml)文件。

将MS项目文件另存为MPP

// Create a project instance
Project newProject = new Project();

// Save project as MPP file
newProject.save("Project1.mpp", SaveFileFormat.MPP);

将MS Project文件另存为XML

// Create a project instance
Project newProject = new Project();

// Save project as XML file
newProject.save("Project1.xml", SaveFileFormat.XML);

使用Java将任务添加到项目中

创建项目文件后,您可以开始向其中添加任务。以下是创建任务并将任务添加到项目文件的步骤。

  • 创建一个Project 类的实例 。
  • 使用Project.getRootTask().getChildren().add(string) 方法将新的摘要任务添加到项目的任务集合中 。
  • 使用Task.getChildren.add(string) 方法将子任务添加到摘要任务 。
  • 使用Project.save(String,SaveFileFormat) 方法保存项目文件。

下面的代码示例演示如何使用C#将任务添加到项目中。

// Create project
Project project = new Project();

// Add task
Task task = project.getRootTask().getChildren().add("Summary1");

// Add sub task
Task subtask = task.getChildren().add("Subtask1");

// Save project as MPP/XML file
newProject.save("Project1.xml", SaveFileFormat.XML);

使用Java将资源添加到项目中

项目中的下一个重要事项是分配给执行任务的资源。因此,在本节中,我们将向项目添加一些资源。以下是将资源添加到项目的步骤。

  • 使用Project 类创建一个新项目或加载一个现有 项目。
  • 使用Project.getResources().add(String)方法添加资源。
  • 使用Project.save(String,SaveFileFormat) 方法保存项目文件。

下面的代码示例演示如何使用Java在项目中添加资源。

// Create project
Project project = new Project();

// Add resource
Resource rsc = project.getResources().add("Rsc");

// Save project as MPP/XML file
newProject.save("Project1.mpp", SaveFileFormat.MPP);

使用Java将任务分配给项目中的资源

添加任务和资源后,下一步就是将任务分配给相关资源。以下是在项目中执行资源分配的步骤。

  • 使用Project 类创建一个新项目或加载一个现有 项目。
  • 以与前面各节中相同的方式添加任务和资源。
  • 分别在Task和Resource对象中获取对任务和资源的引用。
  • 使用Project.getResourceAssignments().add(Task,Resource)方法创建资源分配。
  • 使用Project.save(String,SaveFileFormat) 方法保存项目文件。

以下代码示例显示了如何使用Java在项目中创建资源分配。

// Create project
Project project = new Project();

// Add task
Task task = project.getRootTask().getChildren().add("Summary1");

// Add resource
Resource rsc = project.getResources().add("Rsc");

// Assign task to the resource
ResourceAssignment assn = project.getResourceAssignments().add(task, rsc);

// Save project as MPP/XML file
newProject.save("Project1.mpp", SaveFileFormat.MPP);

使用Java将日历添加到项目中

日历是另一个重要的实体,用于定义项目的时间表。使用日历,您可以为项目创建完整的时间表。为了创建日历,您可以按照以下步骤操作:

  • 使用Project 类创建一个新项目或加载一个现有 项目。
  • 使用Project.getCalendars().add(String)方法创建一个新日历,并在Calendar对象中获取其引用。
  • 使用Calendar.getWeekDays().add(WeekDay)方法指定工作日。
  • 在日历中设置工作时间。
  • 使用Project.save(String,SaveFileFormat) 方法保存项目文件。

下面的代码示例演示如何使用Java在项目中创建日历。

// Create project
Project project = new Project();

// Define Calendar
Calendar cal = prj.getCalendars().add("Calendar1");

// Add working days Monday through Thursday with default timings
cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Monday));
cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Tuesday));
cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Wednesday));
cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Thursday));
cal.getWeekDays().add(new WeekDay(DayType.Saturday));
cal.getWeekDays().add(new WeekDay(DayType.Sunday));

// Set Friday as short working day
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// Sets working time, only time part of DateTime is important
WorkingTime wt1 = new WorkingTime();
java.util.Calendar calTime = java.util.Calendar.getInstance();

calTime.set(1,1,1,9,0,0);
Date date = calTime.getTime();
wt1.setFromTime(date);

calTime.set(1,1,1,12,0,0);
date = calTime.getTime();
wt1.setToTime(date);

WorkingTime wt2 = new WorkingTime();

calTime.set(1,1,1,13,0,0);
date = calTime.getTime();
wt2.setFromTime(date);

calTime.set(1,1,1,16,0,0);
date = calTime.getTime();
wt2.setToTime(date);

myWeekDay.getWorkingTimes().add(wt1);
myWeekDay.getWorkingTimes().add(wt2);
myWeekDay.setDayWorking(true);
cal.getWeekDays().add(myWeekDay);

// Save project as MPP/XML file
newProject.save("Project1.mpp", SaveFileFormat.MPP);

如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!