Det här ämnet täcker hur man skapar organisationsdiagram med Python. Det inkluderar systeminställningar, en steg-för-steg-process och ett körbart kodexempel för att skapa ett verktyg för att skapa organisationsdiagram med Python. Dessutom kan du göra olika anpassningar av organisationsdiagrammet och exportera det resulterande diagrammet i VSDX- eller VSD-format enligt dina behov.
Steg för att skapa organisationsdiagram med Python
- Konfigurera Aspose.Diagram i ditt system för att skapa organisationsdiagram
- Initiera en instans av Diagram-klassen för att ladda huvudformerna från en exempelstencil
- Lägg till nödvändiga former och infoga kopplingar mellan olika noder
- Ställ in olika diagramegenskaper med hjälp av LayoutOptions-klassen och rendera det resulterande organisationsdiagrammet
Ovanstående steg beskriver arbetsflödet för att utveckla ett verktyg för att skapa organisationsdiagram med Python. Först, konfigurera systeminställningarna och ladda exempelhuvudformerna från en stencilfil. Därefter, infoga målformerna och deras motsvarande kopplingar till organisationsdiagrammet innan du sparar det resulterande diagrammet.
Kod för att skapa ett verktyg för att skapa organisationsdiagram med 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) |
Det här kodexemplet visar funktionen för att skapa ett byggare av organisationsdiagram med Python. Du kan dock förbättra det genom att justera antalet eller ordningen på formerna, samt kopplingsriktningar, positioner, etc. På samma sätt kan du ändra nodformer och kopplingar genom att manipulera föräldraform-ID och andra egenskaper för att möta dina behov.
Denna snabbguide har täckt information om att skapa ett verktyg för att skapa organisationsdiagram med Python. Om du är intresserad av att skapa Visio-diagram från grunden, läs artikeln Skapa Visio-diagram med Python.