Microsoft Project ist eine beliebte Projektmanagementsoftware, die es Projektmanagern erleichtert, Projekte effizient zu verwalten. Es ermöglicht den Managern, Aufgaben und Ressourcen zu erstellen, Aufgaben Ressourcen zuzuweisen, den Projektfortschritt zu verfolgen, das Budget zu verwalten und andere projektbezogene Vorgänge durchzuführen. Um MS Project Dateien programmgesteuert zu erstellen und zu verwalten, stellt Microsoft MS Office Automation bereit. Zusammen mit anderen Mängeln erfordert es jedoch die Installation von MS Office. Um diese Lücke zu schließen, springt Aspose ein, um Ihnen eine MS Project-Automatisierungslösung für .NET Anwendungen als Aspose.Tasks for .NET bereitzustellen.

Aspose.Tasks for .NET ist eine funktionsreiche API, mit der Sie MS Project Dateien (.mpp/.xml) programmgesteuert mit C# oder VB.NET erstellen können. Darüber hinaus bietet es verschiedene Funktionen zum Arbeiten mit Aufgaben, Ressourcen und Kalendern. In diesem Artikel zeige ich Ihnen, wie Sie Aspose.Tasks for .NET verwenden, um MS Project Dateien zu erstellen und mit Aufgaben und Ressourcen unter Verwendung von C# zu arbeiten. Der Rest des Artikels ist in die folgenden Abschnitte unterteilt.

Erstellen Sie MS Project Dateien mit C#

MPP ist das proprietäre Dateiformat von Microsoft, das für MS Project Dateien verwendet wird. Sie können Projekt daten jedoch auch in XML Dateien speichern, um sie zwischen verschiedenen Anwendungen auszutauschen. Das Erstellen eines neuen Projekts von Grund auf ist eine einfache Aufgabe und kann mit den folgenden Schritten durchgeführt werden:

Die folgenden Codebeispiele zeigen, wie Sie MS Project Dateien mit C# erstellen.

Speichern Sie MS Project Dateien als MPP

// Erstellen Sie ein neues Projekt
Project project = new Project();

// Speichern Sie es als .mpp Datei
project.Save("New Project.mpp", SaveFileFormat.MPP);

Speichern Sie MS Project Dateien als XML

// Erstellen Sie ein neues Projekt
Project project = new Project();

// Speichern Sie es als .xml Datei
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

Aufgaben zu MS Project Dateien mit C# hinzufügen

Die leere MS Project Datei ist ohne Aufgaben und Ressourcen nutzlos. Sehen wir uns also an, wie Sie Aufgaben erstellen und einem Projekt hinzufügen. Eine Aufgabe kann eine einzelne Aufgabe oder eine Sammelaufgabe sein, die eine Gruppe von Unteraufgaben enthält. Im Folgenden sind die Schritte zum Hinzufügen von Aufgaben zu einer MS Project Datei aufgeführt.

  • Erstellen und initialisieren Sie das Objekt Projekt.
  • Fügen Sie mithilfe der Methode Project.RootTask.Children.Add(string) eine neue Sammelaufgabe zur Sammlung Tasks des Projekts hinzu.
  • Fügen Sie der Sammelaufgabe mithilfe der Task.Children.Add(string) methode eine Teilaufgabe hinzu.
  • Speichern Sie das Projekt mit der methode Project.Save().

Das folgende Codebeispiel zeigt, wie Sie mit C# Aufgaben erstellen und zu MS Project Dateien hinzufügen.

// Erstellen Sie ein neues Projekt
Project project = new Project();

// Aufgabe und Unteraufgabe hinzufügen
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// Datei speichern
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

Das folgende Codebeispiel zeigt, wie verschiedene Eigenschaften der Aufgaben wie Dauer, Startdatum/-zeit usw. festgelegt werden.

// Projekt erstellen
Project project = new Project();

// Aufgabe hinzufügen und Aufgabeneigenschaften festlegen
Task task = project.RootTask.Children.Add("Task1");
task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
task.Set(Tsk.Name, "new name");

Hinzufügen von Ressourcen zu MS Project Dateien mit C#

Ressourcen sind die Entitäten, die die Aufgaben in einem Projekt ausführen sollen. Daher wäre ein Projekt ohne die Ressourcen, um daran zu arbeiten, nicht möglich. Schauen wir uns also an, wie Sie Ressourcen erstellen und einem Projekt hinzufügen. Im Folgenden sind die Schritte zum Hinzufügen von Ressourcen zu einer MS Project Datei aufgeführt.

  • Erstellen Sie ein neues Projekt mit der Klasse Project.
  • Fügen Sie mithilfe der Methode Project.Resources.Add(string) eine neue Ressource zur Sammlung Resources des Projekts hinzu.
  • Speichern Sie das Projekt mit der methode Project.Save().

Das folgende Codebeispiel zeigt, wie Sie mit C# Ressourcen zu einer MS Project Datei hinzufügen.

// Projekt erstellen
Project project = new Project();

// Ressourcen hinzufügen
Resource resource = project.Resources.Add("Rsc");

// Projekt speichern
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Das folgende Codebeispiel legt die Eigenschaften einer Ressource fest, z. B. Startdatum/-zeit, Typ usw.

// Projekt erstellen
Project project = new Project();

// Ressourcen hinzufügen
Resource resource = project.Resources.Add("Rsc");

// Projekt speichern
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Aufgaben einer Ressource in einem Projekt mit C# zuweisen

Nachdem Sie Aufgaben und Ressourcen im Projekt hinzugefügt haben, können Sie angeben, welche Aufgabe von welcher Ressource ausgeführt werden soll. So weisen Sie jeder Ressource die Aufgabe(n) zu. Im Folgenden sind die Schritte zum Zuweisen von Aufgaben zu Ressourcen in einem Projekt aufgeführt.

  • Erstellen oder laden Sie ein Projekt mit der Klasse Project.
  • Fügen Sie dem Projekt neue Ressourcen hinzu und legen Sie deren Eigenschaften wie Datumsformat, Startdatum usw. fest.
  • Fügen Sie dem Projekt neue Aufgaben hinzu und legen Sie deren Eigenschaften wie Startdatum/-zeit, Dauer usw. fest.
  • Führen Sie die Aufgabenzuweisung durch, indem Sie die Aufgabe und ihre jeweilige Ressource zur Sammlung Project.ResourceAssignments hinzufügen.
  • Speichern Sie das Projekt mit der methode Project.Save().

Im Folgenden finden Sie das vollständige Codebeispiel zum Erstellen und Zuweisen von Aufgaben zu Ressourcen in einer MS Project Datei.

// Projekt erstellen
Project project = new Project("New Project.mpp")
{
    CalculationMode = CalculationMode.Automatic
};

// Eigenschaften festlegen
project.Set(Prj.DateFormat, DateFormat.DateDddMmDdYy);
project.Set(Prj.StartDate, new DateTime(2019, 9, 16, 9, 0, 0));
project.Set(Prj.NewTasksAreManual, false);
project.Set(Prj.ActualsInSync, false);

// Ressourcen hinzufügen
Resource workResource = project.Resources.Add("Servente (Work)");
workResource.Set(Rsc.Name, "Servente (Work)");
workResource.Set(Rsc.Initials, "S");
workResource.Set(Rsc.Type, ResourceType.Work);
workResource.Set(Rsc.StandardRateFormat, RateFormatType.Hour);
workResource.Set(Rsc.Code, "1503");

Resource materialResource = project.Resources.Add("Tijolo (Material)");
materialResource.Set(Rsc.Name, "Tijolo (Material)");
materialResource.Set(Rsc.Initials, "T");
materialResource.Set(Rsc.Type, ResourceType.Material);
materialResource.Set(Rsc.StandardRateFormat, RateFormatType.MaterialResourceRate);
materialResource.Set(Rsc.Code, "21341");

// Aufgaben hinzufügen
Task task1 = project.RootTask.Children.Add("Task - 01");
task1.Set(Tsk.IsRollup, new NullableBool(true));
task1.Set(Tsk.IsPublished, new NullableBool(false));
Task task2 = task1.Children.Add("Task - 01.01");
task2.Set(Tsk.IsRollup, new NullableBool(true));
task2.Set(Tsk.IsPublished, new NullableBool(false));
Task task3 = task2.Children.Add("Task - 01.01.001");
task3.Set(Tsk.IsEstimated, new NullableBool(false));
task3.Set(Tsk.Start, new DateTime(2019, 9, 16, 9, 0, 0));
task3.Set(Tsk.Duration, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.Work, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.IsRollup, new NullableBool(true));
task3.Set(Tsk.IsPublished, new NullableBool(false));

// Aufgaben zuweisen
ResourceAssignment assignment1 = project.ResourceAssignments.Add(task3, materialResource);
assignment1.Set(Asn.Delay, project.GetDuration(40, TimeUnitType.Hour));
assignment1.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
assignment1.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));
ResourceAssignment assignment2 = project.ResourceAssignments.Add(task3, workResource);
assignment2.Set(Asn.Work, project.GetDuration(56, TimeUnitType.Hour));
assignment2.Set(Asn.Start, new DateTime(2019, 9, 16, 9, 0, 0));
assignment2.Set(Asn.Finish, new DateTime(2019, 9, 24, 18, 0, 0));

// um dem erwarteten MPP vollständig zu entsprechen
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// Projekt speichern
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

Kalender mit C# zu einem Projekt hinzufügen

Die Kalender sind auch eine der Hauptentitäten der Projekte, die verwendet werden, um den Zeitplan des Projekts zu definieren. Der Kalender ermöglicht es den Projektmanagern, einen Zeitplan für ein Projekt zu erstellen. Im Folgenden werden die Schritte zum Hinzufügen eines Kalenders zu einem Projekt beschrieben.

  • Erstellen oder laden Sie ein Projekt mit der Klasse Project.
  • Neuen Kalender zur Sammlung Projekt.Kalender hinzufügen.
  • Erstellen Sie den Zeitplan mithilfe des Kalenderobjekts.
  • Speichern Sie das Projekt.

Das folgende Codebeispiel zeigt, wie Sie einem Projekt mit C# einen Kalender hinzufügen.

// Erstellen Sie eine Projektinstanz
Project project = new Project();

// Kalender definieren
Calendar cal = project.Calendars.Add("Calendar1");

// Fügen Sie Arbeitstage von Montag bis Donnerstag mit Standardzeiten hinzu
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
cal.WeekDays.Add(new WeekDay(DayType.Saturday));
cal.WeekDays.Add(new WeekDay(DayType.Sunday));

// Freitag als kurzen Arbeitstag festlegen
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// Legt die Arbeitszeit fest. Nur der Zeitteil von DateTime ist wichtig
WorkingTime wt1 = new WorkingTime();
wt1.FromTime = new DateTime(1, 1, 1, 9, 0, 0, 0);
wt1.ToTime = new DateTime(1, 1, 1, 12, 0, 0, 0);
WorkingTime wt2 = new WorkingTime();
wt2.FromTime = new DateTime(1, 1, 1, 13, 0, 0, 0);
wt2.ToTime = new DateTime(1, 1, 1, 16, 0, 0, 0);
myWeekDay.WorkingTimes.Add(wt1);
myWeekDay.WorkingTimes.Add(wt2);
myWeekDay.DayWorking = true;
cal.WeekDays.Add(myWeekDay);

// Projekt speichern
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

Herunterladen oder installieren

Sie können Aspose.Tasks for .NET DLL herunterladen oder mit NuGet in Ihrem Projekt installieren.

Probieren Sie Aspose.Tasks for .NET kostenlos aus

Aspose bietet eine kostenlose temporäre Lizenz, um seine Produkte ohne Testbeschränkungen zu testen. Sie können eine von hier erhalten.

Siehe auch