Lesen von Aufgaben und Ressourcen
Während der Arbeit mit MPP -Dateien müssen Sie möglicherweise Aufgaben und Ressourcen aus Ihrem Projekt lesen. Dieser Artikel bietet einen praktischen Überblick darüber, wie Projektdaten sowohl VSTO als auch Aspose.Tasks für .NET gelesen werden.
Einführung
Das Lesen von Aufgaben und Ressourcen ist häufig der erste Schritt zum Aufbau von Projektanalysen, zum Generieren von Berichten oder zur Validierung der Projektintegrität. Mit Microsoft -Projektdateien (MPP) kann dies unter Verwendung von beiden erreicht werden:
- VSTO (Visual Studio Tools for Office) - Erfordert Microsoft Project und COM Interop.
- Aspose.Tasks FÜR .NET - Eine eigenständige API für die Arbeit mit Projektdaten, ohne sich auf Microsoft -Projekt zu verlassen.
In diesem Artikel werden in beiden Ansätzen aufgeführt, wie Task- und Ressourceninformationen extrahiert werden.
Lesen Sie Aufgaben und Ressourcen mit VSTO
Zugriff auf Aufgaben- und Ressourcendaten mit VSTO:
- Erstellen Sie ein neues Projekt in Visual Studio.
- Fügen Sie einen Verweis auf Microsoft -Projekt 12.0 Objektbibliothek aus der Registerkarte com hinzu.
- Importieren Sie den Namespace
microsoft.office.interop.mproject
. - Verwenden Sie den folgenden Beispielcode.
1 // Create Application object
2 Application projectApplication = new ApplicationClass();
3 object missingValue = System.Reflection.Missing.Value;
4
5 // Open MPP file
6 projectApplication.FileOpenEx(@"C:\Project1.mpp",
7 missingValue, missingValue, missingValue, missingValue,
8 missingValue, missingValue, missingValue, missingValue,
9 missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
10 missingValue, missingValue, missingValue, missingValue,
11 missingValue);
12
13 Project project = projectApplication.ActiveProject;
14
15 // Read all tasks
16 foreach (Task task in project.Tasks)
17 {
18 Console.WriteLine("Reading Task: " + task.Name);
19 Console.WriteLine("ID: " + task.ID);
20 Console.WriteLine("Start: " + task.Start);
21 Console.WriteLine("Finish: " + task.Finish);
22 Console.WriteLine("===========================\n");
23 }
24
25 // Read all resources
26 foreach (Resource resource in project.Resources)
27 {
28 string resourceType = resource.Type switch
29 {
30 PjResourceTypes.pjResourceTypeCost => "Cost",
31 PjResourceTypes.pjResourceTypeMaterial => "Material",
32 PjResourceTypes.pjResourceTypeWork => "Work",
33 _ => "Unknown"
34 };
35
36 Console.WriteLine("Reading Resource: " + resource.Name);
37 Console.WriteLine("ID: " + resource.ID);
38 Console.WriteLine("Type: " + resourceType);
39 Console.WriteLine("===========================\n");
40 }
41
42 Console.ReadLine();
Hinweise
– Der Zugriff auf Aufgaben und Ressourcen erfolgt über „project.Tasks“ und „project.Resources“. – Der Typ jeder Ressource wird über „PjResourceTypes“ identifiziert. – VSTO setzt voraus, dass Microsoft Project installiert und zur Laufzeit verfügbar ist.
Aufgaben und Ressourcen mit Aspose.Tasks für .NET lesen
So erreichen Sie dasselbe mit Aspose.Tasks für .NET:
- Erstellen Sie ein neues Visual Studio-Projekt.
- Fügen Sie über die Registerkarte „.NET“ eine Referenz auf Aspose.Tasks hinzu.
- Importieren Sie den Namespace „Aspose.Tasks“.
- Verwenden Sie das folgende Codebeispiel.
1Project project = new Project("New Project.mpp");
2
3// Load all tasks
4TaskCollection allTasks = project.RootTask.Children;
5
6// Loop through each task and read information related to tasks
7foreach (Task task in allTasks)
8{
9 Console.WriteLine("Reading Task " + task.Get(Tsk.Name));
10 Console.WriteLine("ID: " + task.Get(Tsk.Id));
11 Console.WriteLine("Start: " + task.Get(Tsk.Start));
12 Console.WriteLine("Finish: " + task.Get(Tsk.Finish));
13}
14
15// Loop through each resource and read information related to resources
16foreach (Resource resource in project.Resources)
17{
18 string resourceType = null;
19 switch (resource.Get(Rsc.Type))
20 {
21 case ResourceType.Material:
22 resourceType = "Material";
23 break;
24 case ResourceType.Work:
25 resourceType = "Work";
26 break;
27 default:
28 resourceType = "Cost";
29 break;
30 }
31
32 Console.WriteLine("Reading Resource " + resource.Get(Rsc.Name));
33 Console.WriteLine("ID: " + resource.Get(Rsc.Id));
34 Console.WriteLine("Type: " + resourceType);
35}
Highlights
- Das Objekt „Project“ bietet Zugriff auf
roottask.Children
für die Aufgabenquelle. - Ressourcen werden über die „Ressourcen“-Kollektion zugegriffen.
- Aspose.Tasks unterstützt auch erweiterte Funktionen wie Kalender, erweiterte Attribute und Baselines - ohne Microsoft -Projekt.
Vergleichstabelle
Feature | VSTO / Interop | Aspose.Tasks for .NET |
---|---|---|
Requires Microsoft Project | ✅ Yes | ❌ No |
Platform | 🖥 Windows only | ✅ Cross-platform |
Access Model | COM-based | Pure .NET API |
Ease of Deployment | ⚠ Limited | ✅ Self-contained |
Reading Resources | project.Resources | project.Resources |
Reading Tasks | project.Tasks | project.RootTask.Children |
Zusammenfassung
Das Extrahieren von Aufgaben und Ressourcen ist eine grundlegende Fähigkeit bei der Arbeit mit Microsoft -Projektdateien. Während VSTO eine Möglichkeit bietet, über COM Interop mit Projektdateien zu arbeiten, leidet es unter begrenzten Bereitstellungsszenarien und Plattformbeschränkungen.
Aspose.Tasks FÜR .NET bietet eine leichte, plattformübergreifende und wartbare Alternative für das Lesen und Verarbeitung von Projektdaten. Damit ist es ideal für moderne Unternehmensanwendungen und Automatisierungsleitungen.
Sehen Sie: