Чтение содержимого файла VISIO сверху вниз в последовательности с использованием Python - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь написать Имя фигур и соответствующий текст в листе 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')'

Можете ли вы помочь мне с этим. Спасибо.

1 Ответ

0 голосов
/ 10 сентября 2018

К сожалению, в Visio нет метода, подобного page.GetShapesAccordingToTheGraph, вам нужно будет сделать это самостоятельно. В качестве первого шага вы можете найти все взаимосвязи фигур (построить «график»), а в качестве второго шага: Пройдите этот граф в последовательности, которая имеет для вас смысл.

  1. Построение графика. Вы можете использовать Visio shape.ConnectedShapes или Connects, чтобы найти связанные фигуры. Вы можете обратиться к этой замечательной статье, чтобы начать поиск соединений: https://blog.bvisual.net/2016/08/09/understanding-visio-connections/

  2. Обход. Самый простой способ - это использовать поиск в первую очередь, или Поиск в глубину, например ... все зависит от того, как связаны ваши фигуры (например, есть ли циклы / циклы, и как вы хотите обрабатывать альтернативные пути).

В тривиальном случае, когда нет петель и нет альтернативных путей, (2) будет фактически просто итерацией фигур в соответствии с их (одним) исходящим соединением. Сначала вы найдете фигуру без входящих ребер, затем, начиная с этой фигуры, получите ту, которая соединена с ней, используя исходящий ребро, затем повторите для этой соединенной фигуры, пока их больше не будет.

...