使用python以序列的形式从上到下读取VISIO文件的内容

问题描述 投票:0回答:1

我试图在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')'

能帮帮我吗。谢谢。

python excel python-3.x visio
1个回答
1
投票

不幸的是,像page.GetShapesAccordingToTheGraph这样的Visio中没有方法,你需要自己做。作为第一步,你可以找到所有形状的互连(构建“图形”),作为第二步,遍历那个图形。对你有意义的序列。

  1. 构建图表。您可以使用Visio shape.ConnectedShapesConnects查找连接的形状。你可以参考这篇伟大的文章来开始寻找连接:https://blog.bvisual.net/2016/08/09/understanding-visio-connections/
  2. 遍历。最简单的方法是使用面包优先搜索或深度优先搜索为例..这一切都取决于您的形状是如何连接的(例如,是否存在循环/循环,以及您希望如何处理替代路径)。

在没有循环且没有备用路径的简单情况下,(2)实际上只是根据它们的(单个)传出连接迭代形状。首先你找到没有入边的形状,然后,从那个形状开始,使用外边缘获得与它连接的那个,然后重复该连接的形状,直到没有更多。

© www.soinside.com 2019 - 2024. All rights reserved.