【发布时间】:2022-02-04 01:11:17
【问题描述】:
我正在尝试使用 win32com.client 使用来自 MPP 文件的数据创建一个图表来读取数据。但是在咨询了Microsoft's documentation之后,我尝试从一个简单的代码开始。
import win32com.client
mppFileName = 'C:/python/test.mpp'
mpp = win32com.client.Dispatch("MSProject.Application")
mpp.visible = 0
mpp.FileOpen(mppFileName)
project = mpp.ActiveProject
ResourceList = project.Resources
assignments = project.Assignments
for resource in ResourceList:
if resource.Work != 0:
print(resource.Name, ' ', resource.Job)
mpp.FileClose(Save=0)
exit()
但此代码在assignments= 行上生成错误(Assignments 为“未知”)。有谁知道使用 Assignments 和 TimeScaleValues 对象的正确方法?我的目标是创建一个图表,其中包含按周分配给每个项目资源的工作量。
【问题讨论】:
-
project没有Assignments属性,但resource有,根据您提供的文档链接。 -
您好,感谢您的评论!使用文档我了解到我有两个必须声明的嵌套集合。我已经尝试使用“Assigments = ResourceList.Assigments”、“Assignments = Resources.Assignment”和其他变体,但似乎没有任何效果。这个link VBA 文档对我也没有太大帮助...
-
你在'for'循环中试过
assignments = resource.Assignments吗?文档很清楚:Assignments 是 Resource 对象的一个属性(如Work):docs.microsoft.com/en-us/office/vba/api/… -
感谢您的帮助!有了你的 cmets 和 Rachel 的回答,我就可以继续了。我必须在循环内而不是在外面做作业......谢谢!
标签: python python-3.x win32com ms-project