Я пытаюсь использовать Interop.MSProject с C #, чтобы сделать что-то концептуальное, должно быть самой простой вещью в мире. Тем не менее, у меня возникли некоторые проблемы с его загадочным API, который имеет минимальную документацию. Все, что я хочу сделать, это найти строку, содержащую определенную строку в одном из ее столбцов (ячейка), и удалить эту строку. После этого я просто хочу отобразить измененный файл проекта, чтобы у пользователя была возможность сохранить его. Вот что я попробовал:
MSProject.Application app = new MSProject.Application();
app.FileOpenEx(
filePath,
false,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
MSProject.PjPoolOpen.pjPoolReadWrite,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);
foreach(MSProject.Task task in proj.Tasks)
{
if (task == null) continue;
string cellValue = task.OutlineCode3;
if (cellValue == searchString)
task.Delete();
}
app.Visible = true;
Кажется, будто задача. Удаление не работает. Я даже пытался обобщить этот код следующим образом:
foreach (MSProject.Task task in proj.Tasks)
task.Delete()
и это тоже не сработало. Кто-нибудь знает, как я могу удалить задачу или строку строки на основе значения в одной из ячеек строк?