Crea l'organigramma aziendale in Python

Un organigramma rappresenta visivamente la gerarchia e la struttura di un’azienda, un governo o un’organizzazione, servendo a scopi come la definizione delle politiche e la pianificazione. Sfruttando forme e connettori diversi, puoi progettare vari tipi di grafici. Questo articolo fornisce una guida passo passo su come creare un organigramma aziendale in Python, consentendoti di illustrare e comunicare in modo efficace la struttura della tua organizzazione.

Questo articolo tratta i seguenti argomenti:

  1. API Python per la creazione di grafici organizzativi
  2. Crea organigramma aziendale in stile CompactTree
  3. Crea organigramma aziendale in stile diagramma di flusso
  4. Risorse gratuite

API Python per la creazione di organigrammi – Download gratuito

Per creare organigrammi aziendali, utilizzeremo Aspose.Diagram for Python. È una potente API che consente agli sviluppatori di creare, manipolare e convertire i diagrammi di Visio a livello di codice. Con Aspose.Diagram for Python, puoi automatizzare la creazione e l’aggiornamento degli organigrammi, rendendolo uno strumento essenziale per le applicazioni di risorse umane, gestione e analisi aziendale.

Per favore scarica il pacchetto o installa l’API da PyPI utilizzando il seguente comando pip nella console:

pip install aspose-diagram-python 

Crea un organigramma aziendale in stile CompactTree

Possiamo creare facilmente un organigramma aziendale in stile CompactTree seguendo i passaggi seguenti:

  1. Carica i master da qualsiasi diagramma, stencil o modello esistente.
  2. Definire i valori per costruire la gerarchia.
  3. Crea un’istanza della classe Diagram.
  4. Aggiungi forme e connessioni tra i nodi.
  5. Specificare LayoutOptions e impostare LayoutStyle.COMPACTTREE.
  6. Salva il diagramma di output utilizzando il metodo save().

L’esempio di codice seguente mostra come creare un organigramma aziendale in stile CompactTree utilizzando Python.

# Questo esempio di codice mostra come creare un organigramma aziendale in stile CompactTree
import aspose.diagram
from aspose.diagram import *

# Carica i master da qualsiasi diagramma, stencil o modello esistente
visioStencil = "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5

# Definire i valori per costruire la gerarchia
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"]

# Definire un dizionario per mappare il nome della stringa sull'ID di forma lunga
shapeIdMap = {}

# Crea un nuovo diagramma
diagram = Diagram(visioStencil)
diagram.pages[pageNumber].page_sheet.page_props.page_width.value = 11.0

for orgnode in listPos:
    # Aggiungi una nuova forma rettangolare
    rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
    pinX += 1
    pinY += 1
    # Imposta le proprietà della nuova forma
    shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
    shape.text.value.add(Txt(orgnode))
    shape.name = orgnode
    shapeIdMap[orgnode] = rectangleId

# Creare connessioni tra i nodi
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)

# Grafico CompactTree con layout automatico
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)

# Salva diagramma
diagram.save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX)
Crea un organigramma aziendale in stile CompactTree utilizzando Python

Crea un organigramma in stile diagramma di flusso

Allo stesso modo, possiamo anche creare un organigramma aziendale in stile diagramma di flusso seguendo i passaggi sopra menzionati. Tuttavia, dobbiamo solo specificare LayoutStyle.FLOWCHART nel passaggio 5.

Il seguente esempio di codice mostra come creare un organigramma aziendale in stile diagramma di flusso utilizzando Python.

# Questo esempio di codice mostra come creare un organigramma aziendale in uno stile diagramma di flusso
import aspose.diagram
from aspose.diagram import *

# Carica i master da qualsiasi diagramma, stencil o modello esistente
visioStencil = "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5

# Definire i valori per costruire la gerarchia
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"]

# Definire un dizionario per mappare il nome della stringa sull'ID di forma lunga
shapeIdMap = {}

# Crea un nuovo diagramma
diagram = Diagram(visioStencil)

for orgnode in listPos:
    # Aggiungi una nuova forma rettangolare
    rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
    pinX += 1
    pinY += 1
    # Imposta le proprietà della nuova forma
    shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
    shape.text.value.add(Txt(orgnode))
    shape.name = orgnode
    shapeIdMap[orgnode] = rectangleId

# Creare connessioni tra i nodi
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)

# Diagramma di flusso del layout automatico
flowChartOptions = autolayout.LayoutOptions()
flowChartOptions.layout_style = autolayout.LayoutStyle.FLOW_CHART
flowChartOptions.direction = autolayout.LayoutDirection.TOP_TO_BOTTOM
flowChartOptions.enlarge_page = True

diagram.pages[pageNumber].layout(flowChartOptions)

# Salva diagramma
diagram.save("FlowChart_out.vsdx", SaveFileFormat.VSDX)
Crea un organigramma aziendale in uno stile di diagramma di flusso utilizzando Python

Ottieni una licenza temporanea gratuita

Ottieni una licenza gratuita per creare organigrammi aziendali in Visio senza limitazioni. Visita la nostra pagina “Licenza temporanea” per semplici passaggi per ottenere la tua licenza gratuita e iniziare subito a utilizzare l’API per la creazione di organigrammi Python!

Creatore di organigrammi Python: risorse gratuite

Oltre a creare organigrammi aziendali, puoi saperne di più sulla creazione o la modifica degli organigrammi a livello di codice ed esplorare varie altre funzionalità della libreria utilizzando le risorse seguenti:

Conclusione

In questo post del blog abbiamo visto come creare un organigramma aziendale in Python utilizzando Aspose.Diagram for Python. Con poche righe di codice puoi creare un grafico dall’aspetto professionale che mostra la struttura della tua azienda. Aspose.Diagram for Python è un potente strumento che può aiutarti ad automatizzare il processo di creazione e modifica dei diagrammi, rendendolo una libreria essenziale per qualsiasi sviluppatore Python che lavora con file Visio. In caso di ambiguità, contattaci sul nostro forum di supporto gratuito.

Guarda anche