Este tema explica cómo crear un organigrama en Python. Incluye la configuración del sistema, un proceso paso a paso y un ejemplo de código ejecutable para desarrollar un generador de organigramas en Python. Además, puedes personalizar el organigrama y exportar el diagrama en formato VSDX o VSD según tus necesidades.
Pasos para Crear un Organigrama en Python
- Configura Aspose.Diagram en tu sistema para crear un organigrama
- Inicia una instancia de la clase Diagram para cargar las formas maestras desde una plantilla de muestra
- Agrega las formas necesarias e inserta conexiones entre los diferentes nodos
- Configura varias propiedades del organigrama usando la clase LayoutOptions y genera el diagrama final
Estos pasos describen el flujo de trabajo para desarrollar un generador de organigramas en Python. Primero, configura el sistema y carga las formas maestras desde un archivo de plantilla. Luego, inserta las formas y sus respectivas conexiones antes de generar el diagrama final.
Código para Crear un Generador de Organigramas en 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 fragmento de código muestra cómo crear un constructor de organigramas en Python. Sin embargo, puedes personalizarlo ajustando la cantidad u orden de las formas, la dirección de los conectores, la posición, etc. Asimismo, puedes modificar las formas de los nodos y las conexiones ajustando el ID de la forma principal y otras propiedades para adaptarlas a tus necesidades.
Esta guía rápida ha explicado cómo crear un generador de organigramas en Python. Si te interesa crear diagramas de Visio desde cero, consulta el artículo sobre Crear un Diagrama de Visio en Python.