Как использовать pywin32 для извлечения данных из использования задачи в msproject? - PullRequest
1 голос
/ 04 июля 2019

Я пытаюсь использовать библиотеку Pywin32 Python для извлечения данных из файла MSProject .mpp в файл excel, где я хочу, чтобы мои сотрудники регистрировали свой рабочий час.

Я могу извлекать данные из любого поля, которое мне нужно, кроме Таблицы использования задач, в которой за каждый день показано, сколько часов должно быть выполнено задание (человек Х задача) (Работа) и (Фактическая работа) и позволяет пользователям указывать количество часов.

Изображение таблицы использования задач

Похоже, что для него есть Объект, если используется VBA Programming, называемый TimeScaleValue object (Project) | Документы Microsoft

Хотя кажется, что в объекте Task в pywin32 нет аналогичного атрибута. Есть какие-нибудь советы? Большое спасибо!

import win32com
...
Tasks_collection=ActiveProject.Tasks
for t in Tasks_collection:
   for r in t.Assignments:
        TSV_collection = r.TimeScaleValue('06/01/2019','08/01/2019')
...

Командная строка выдала мне сообщение: AttributeError: win32com.gen_py.Microsoft Project. Object Library.Assignment экземпляр объекта не имеет атрибута TimeScaleValue

Есть какие-нибудь советы? Большое спасибо.

1 Ответ

0 голосов
/ 05 июля 2019

Вот как я с этим справился. Для всех, кому нужно решение.

Tasks_collection=ActiveProject.Tasks
for t in Tasks_collection:
  for r in t.Assignments:
    #get a TimeScaleValues Collection
    TSV_collection=r.TimeScaleData('06/01/2019','08/01/2019',\
          pjAssignmentTimescaledWork,pjTimescaleDays)
    for tsv in TSV_collection:
      print(tsv.Value)

Метод Assignment.TimeScaleData (Проект) | Документы Microsoft

Объект TimeScaleValues ​​(Проект) | Документы Microsoft

Объект TimeScaleValue (Проект) | Документы Microsoft

...