【问题标题】:Reading the contents of Microsoft Visio (2010) doc in IronPython在 IronPython 中阅读 Microsoft Visio (2010) 文档的内容
【发布时间】:2014-12-12 08:30:10
【问题描述】:

我的任务是在 IronPython 中编写一个程序,该程序读取 Visio (2010) 文档,并在 CMD 中输出活动页面中的对象以及它们之间的连接方式。

到目前为止,我已成功打开 Visio 文档,但无法显示其中的内容。 到目前为止,这是我的代码:

import sys
import clr
import System
clr.AddReference("Microsoft.Office.Interop.Visio")
import Microsoft.Office.Interop.Visio
IVisio = Microsoft.Office.Interop.Visio
visapp = IVisio.ApplicationClass()
doc = visapp.Documents.Open("C:\\Users\\hari\\Desktop\\PythonExamples\\helloworld.vsd") 
page = visapp.ActivePage

elements = page.GetContainers(0)

for entry in elements:
    print entry

doc.Close()
visapp.Visible =0
visapp.Quit()

我在 MSDN http://msdn.microsoft.com/en-us/library/office/ff765392(v=office.15).aspx 中找到了 GetContainers 方法,但它没有输出有关文档中存在的形状的任何内容。有人可能有想法吗?

【问题讨论】:

  • 我更改了您的标签,因为问题(到目前为止)与 python 无关(甚至与 Ironpython 无关)并添加了一个 visio-tag,因为似乎主要需要 visio SDK 的帮助/自动化 API。
  • 也许有帮助:stackoverflow.com/questions/6456831/shape-connectors-in-visio 是否在 python 中这样做没有太大区别。

标签: ironpython visio


【解决方案1】:

你可以从这样的事情开始......我想这很简单......

.......
.......
page = visapp.ActivePage

for shape in page.Shapes:
    if not shape.OneD:
        print shape.Name + " '" + shape.Text + "'"
        for connectedShapeId in shape.ConnectedShapes(2, ""):
            connectedShape = page.Shapes.ItemFromID[connectedShapeId]
            print " => " + connectedShape.Name + " '" + connectedShape.Text + "'"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2011-05-20
    • 2010-10-16
    相关资源
    最近更新 更多