Ce guide explique comment créer un organigramme en Python. Il comprend les paramètres système, le processus étape par étape et un exemple de code exécutable pour développer un générateur d’organigrammes en Python. De plus, vous pouvez personnaliser l’organigramme et exporter le diagramme résultant au format VSDX ou VSD selon vos besoins.
Étapes pour créer un organigramme en Python
- Configurer Aspose.Diagram sur votre système pour créer un organigramme
- Initialiser une instance de la classe Diagram pour charger les formes maîtresses à partir d’un gabarit d’exemple
- Ajouter les formes requises et établir les connexions entre les différents nœuds
- Définir diverses propriétés du diagramme à l’aide de la classe LayoutOptions et générer l’organigramme final
Les étapes ci-dessus décrivent le processus de développement d’un générateur d’organigramme en Python. Tout d’abord, configurez les paramètres du système et chargez les formes maîtresses depuis un fichier gabarit. Ensuite, insérez les formes nécessaires et leurs connexions respectives avant d’exporter le diagramme final.
Code pour créer un générateur d’organigrammes 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) |
Cet extrait de code illustre la fonctionnalité permettant de créer un constructeur d’organigramme en Python. Vous pouvez l’améliorer en ajustant le nombre ou l’ordre des formes, la direction des connecteurs, la position, etc. De même, vous pouvez modifier la forme des nœuds et les connexions en ajustant l’ID du parent et d’autres propriétés en fonction de vos besoins.
Ce guide rapide vous a appris à créer un outil de création d’organigrammes en Python. Si vous souhaitez créer des diagrammes Visio à partir de zéro, consultez l’article sur Créer un diagramme Visio en Python.