在检查Visio形状的单元格时,以下代码不会返回预期值:
costVal= shpObj1.CellsU("Prop.Cost")
print (costVal)
[注意-这是一个问题的摘要,在我回答时被删除了,但这是一个有用的问题,因此我认为我会提出并回答它。]
答案 0 :(得分:2)
要在Visio中获得ShapeSheet单元格的值,您必须询问该单元格的Result properties之一。
import os
import win32com.client
from win32com.client import constants
# this sample assumes that Visio is running, that the ActiveWindow
# is a Drawing window and that the Selection.PrimaryItem
# is a 'Decision' shape from the 'Basic Flowchart Shapes' stencil
# get the running app
appVisio = win32com.client.GetActiveObject("Visio.Application")
# selection gets you the 1 or more selected shapes and
# the PrimaryItem returns the main / primary item in that selection
# or null if the selection is empty
targetShp = appVisio.ActiveWindow.Selection.PrimaryItem
# set the cell
targetShp.CellsU("Prop.Cost").FormulaU = "=2.50"
# read the cell using its 'internal units' result property
print(targetShp.CellsU("Prop.Cost").ResultIU)