PythonでORGチャートを作成する

このトピックでは、PythonでORGチャートを作成する方法を説明します。システムの設定、ステップごとのプロセス、および実行可能なコードサンプルを含み、Pythonで組織図作成ツールを開発できます。さらに、組織図をカスタマイズし、VSDX または VSD 形式でエクスポートすることも可能です。

PythonでORGチャートを作成する手順

  1. ORGチャートを作成するためにAspose.Diagramをセットアップ
  2. Diagram クラスのインスタンスを作成し、サンプルのステンシルからマスターシェイプを読み込む
  3. 必要なシェイプを追加し、異なるノード間に接続を挿入する
  4. LayoutOptions クラスを使用して様々なチャートプロパティを設定し、ORGチャートをレンダリングする

これらの手順は、Pythonで組織図ジェネレーターを開発するワークフローを説明しています。最初に、システム設定を行い、サンプルのマスターシェイプをステンシルファイルから読み込みます。その後、組織図の対象となるシェイプとそれらの接続を挿入し、最終的に出力図を生成します。

PythonでORGチャートメーカーを作成するコード

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)

このコードスニペットは、Pythonで組織図ビルダーを作成する機能を示しています。ただし、シェイプの数や順序、コネクターの向き、位置などを調整して、さらに改良することができます。同様に、親シェイプIDやその他のプロパティを操作することで、ノードのシェイプや接続をカスタマイズすることも可能です。

このクイックガイドでは、Pythonで組織図メーカーを作成する方法について説明しました。Visioダイアグラムをゼロから作成することに興味がある場合は、PythonでVisioダイアグラムを作成する の記事を参照してください。

 日本語