首页 > 解决方案 > 如何使用 pywin32 从 msproject 中的任务使用中提取数据?

问题描述

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

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

任务使用表的图像

如果情况是VBA编程,似乎有一个Object,称为TimeScaleValue对象(Project) | 微软文档

虽然 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 。Object Library.Assignment 实例对象没有属性“TimeScaleValue”

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

标签: pythonvbapywin32ms-project

解决方案


以下是我的处理方式。对于所有需要解决方案的人。

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 方法 (项目) | 微软文档

TimeScaleValues 对象 (项目) | 微软文档

TimeScaleValue 对象(项目)| 微软文档


推荐阅读