如何使用pywin32从msproject中的任务使用中提取数据?

时间:2019-07-04 08:55:11

标签: python vba pywin32 ms-project

我正在尝试使用pywin32 Python库将数据从MSProject .mpp文件提取到一个excel文件,我希望我的员工在此注册他们的工作时间。

我可以从我想要的任何字段中提取数据,除了“任务使用情况表”,该表每天显示必须完成(工作)并且已经完成(实际工作)多少小时(一个人X一个任务)并允许用户填写小时数。

Image of the Task Usage Table

如果是VBA编程,则似乎有一个对象,称为TimeScaleValue object (Project) | Microsoft Docs

虽然pywin32中的Task对象下似乎没有类似的属性。 有什么建议吗?非常感谢!

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。对象库。分配实例对象没有属性“ TimeScaleValue”

有什么建议吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

这是我的处理方式。对于需要解决方案的每个人。

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 method (Project) | Microsoft Docs

TimeScaleValues object (Project) | Microsoft Docs

TimeScaleValue object (Project) | Microsoft Docs