Este artigo explica como criar um organograma no Python. Ele abrange os requisitos do sistema, o processo passo a passo e um exemplo de código funcional para desenvolver um gerador de organogramas no Python. Além disso, é possível personalizar o organograma e exportá-lo para os formatos de arquivo VSDX ou VSD conforme necessário.
Passos para Criar um Organograma no Python
- Configurar o Aspose.Diagram no sistema para criar um organograma
- Iniciar uma instância da classe Diagram para carregar os formatos de forma a partir de um modelo de estêncil
- Adicionar as formas necessárias e inserir conexões entre diferentes nós
- Definir várias propriedades do organograma usando a classe LayoutOptions e renderizar o diagrama final
Esses passos descrevem o fluxo de trabalho para desenvolver um gerador de organogramas no Python. Primeiro, configuramos o ambiente do sistema e carregamos os formatos de forma do modelo de estêncil. Depois, inserimos as formas necessárias e suas conexões antes de gerar e salvar o organograma final.
Código para Criar um Organograma no Python
import aspose.diagram | |
from aspose.diagram import * | |
path = "C://" | |
# Load masters from any existing diagram, stencil or template | |
visioStencil = path + "BasicShapes.vss" | |
rectangleMaster = "Rectangle" | |
connectorMaster = "Dynamic connector" | |
pageNumber = 0 | |
width = 1.0 | |
height = 1.0 | |
pinX = 4.25 | |
pinY = 9.5 | |
# Define values to construct the hierarchy | |
listPos = ["0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1"] | |
# Define a dictionary to map the string name to long shape id | |
shapeIdMap = {} | |
# Create a new diagram | |
diagram = Diagram(visioStencil) | |
diagram.pages[pageNumber].page_sheet.page_props.page_width.value = 11.0 | |
for orgnode in listPos: | |
# Add a new rectangle shape | |
rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber) | |
pinX += 1 | |
pinY += 1 | |
# Set the new shape's properties | |
shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId) | |
shape.text.value.add(Txt(orgnode)) | |
shape.name = orgnode | |
shapeIdMap[orgnode] = rectangleId | |
# Create connections between nodes | |
for orgName in listPos: | |
lastColon = orgName.rfind(':') | |
if lastColon > 0: | |
parentName = orgName[:lastColon] | |
shapeId = shapeIdMap[orgName] | |
parentId = shapeIdMap[parentName] | |
connector1 = Shape() | |
connecter1Id = diagram.add_shape(connector1, connectorMaster, pageNumber) | |
diagram.pages[pageNumber].connect_shapes_via_connector(parentId, manipulation.ConnectionPointPlace.RIGHT, | |
shapeId, manipulation.ConnectionPointPlace.LEFT, connecter1Id) | |
# Auto layout CompactTree chart | |
compactTreeOptions = autolayout.LayoutOptions() | |
compactTreeOptions.layout_style = autolayout.LayoutStyle.COMPACT_TREE | |
compactTreeOptions.direction = autolayout.LayoutDirection.DOWN_THEN_RIGHT | |
compactTreeOptions.enlarge_page = False | |
diagram.pages[pageNumber].layout(compactTreeOptions) | |
# Save diagram | |
diagram.save("ORGchart_out.vsdx", SaveFileFormat.VSDX) |
Este trecho de código demonstra a funcionalidade de um construtor de organogramas no Python. No entanto, ele pode ser aprimorado ajustando o número ou a ordem das formas, bem como a direção das conexões, posições, etc. Além disso, é possível modificar as formas dos nós e as conexões ajustando o ID da forma principal e outras propriedades para atender às necessidades específicas.
Este guia rápido abordou as informações necessárias para criar um gerador de organogramas no Python. Se estiver interessado em criar diagramas do Visio do zero, confira o artigo Criar Diagrama do Visio no Python.