这是我在网站上的第一个问题,虽然我已经得到了很多帮助。
我要做的是打开MSProject(.MPP)文档并查看所有任务名称,然后只检索具有指定名称的文档。
我在这个网站NerdyHearn上找到了一些似乎符合我需求的代码,但由于某些原因我只能检索绝对第一个任务的名称? 因为这行代码在我看来很奇怪:
foreach (Microsoft.Office.Interop.MSProject.Task task in proj.Tasks)
{
}
循环是对的吗?我尝试过不同的.MPP文件,甚至创建了自己的文件,但它仍然只检索第一个文件。
如果有人可以帮我设计一个过滤器,以便在检索任务名称时使用,那就太棒了!
我还试图找到Microsoft.Office.Interop.MSProject的文档,但我似乎无法找到它。
答案 0 :(得分:1)
发布代码块,以便您查看我拥有的内容。如果可以,请发布一个文件,也许是别的而不是子任务,因为我在某些地方有4个等级,所有的任务都按预期出现。
using Microsoft.Office.Interop.MSProject;
using System;
using System.Reflection;
namespace PProject
{
public class Program
{
public static void Main()
{
Application projApp = new Application();
projApp.FileOpenEx(@"C:\Tickets.mpp", true, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
PjPoolOpen.pjDoNotOpenPool, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value);
Project proj = projApp.ActiveProject;
// Enumerate the tasks
foreach (Task task in proj.Tasks)
{
string name = task.Name;
Console.WriteLine(task.Name);
}
// Make sure to clean up and close the file
projApp.FileCloseAll(PjSaveType.pjDoNotSave);
}
}
}