使用python从上到下按顺序读取VISIO文件的内容

使用python从上到下按顺序读取VISIO文件的内容,python,excel,python-3.x,visio,Python,Excel,Python 3.x,Visio,我试图在excel表格中写形状的名称和相应的文本,即从上到下。我编写的程序在覆盖所有块的任意位置随机读取数据 我希望我的程序按照图形的流程从上到下顺序读取文件 这就是我正在使用的程序 pages = application.ActiveDocument.Pages i=1 for page in pages: print('SheetName:' + str(page)) i=i+1 sheet1.write(i,0,('SheetName:' + str(page)))

我试图在excel表格中写形状的名称和相应的文本,即从上到下。我编写的程序在覆盖所有块的任意位置随机读取数据

我希望我的程序按照图形的流程从上到下顺序读取文件

这就是我正在使用的程序

pages = application.ActiveDocument.Pages
i=1
for page in pages:
    print('SheetName:' + str(page))
    i=i+1
    sheet1.write(i,0,('SheetName:' + str(page)))
    for shape in page.Shapes:
        print (shape.Name + " '" + shape.Text)
        sheet1.write(i,1,shape.Name)
        sheet1.write(i,2,shape.Text)
        i=i+1
wb.save('example1.xls')'

您能帮我做这个吗。谢谢。

不幸的是,Visio中没有类似于
页面的方法。获取形状根据图表,您需要自己做。。第一步,您可以找到所有形状互连(构建“图形”),第二步,按照对您有意义的顺序遍历该图形

  • 构建图表。您可以使用Visio
    shape.ConnectedShapes
    Connect
    查找连接的形状。您可以参考这篇很棒的文章来开始查找连接:

  • 穿越。最简单的方法是使用面包优先搜索,例如深度优先搜索。。这完全取决于形状的连接方式(例如,是否存在循环/循环,以及您希望如何处理备用路径)

  • 在一般情况下,当并没有循环和备用路径时,(2)实际上只是形状根据其(单个)输出连接的迭代。 首先找到没有传入边的形状,然后从该形状开始,使用传出边获取与其连接的形状,然后对该连接的形状重复此操作,直到没有更多