Создать организационную структуру компании на Python

Организационная структура визуально представляет иерархию и структуру компании, правительства или организации, служащую таким целям, как выработка политики и планирование. Используя различные формы и соединители, вы можете создавать различные типы диаграмм. В этой статье представлено пошаговое руководство по созданию организационной структуры компании на Python, которое позволит вам эффективно проиллюстрировать и передать структуру вашей организации.

В этой статье рассматриваются следующие темы:

  1. API создания организационных диаграмм Python
  2. Создать организационную структуру компании в стиле CompactTree
  3. Создать организационную структуру компании в стиле блок-схемы
  4. Бесплатные ресурсы

API Python для создания организационных диаграмм – скачать бесплатно

Для создания организационных структур компании мы будем использовать Aspose.Diagram for Python. Это мощный API, который позволяет разработчикам программно создавать, манипулировать и преобразовывать диаграммы Visio. С помощью Aspose.Diagram for Python вы можете автоматизировать создание и обновление организационных диаграмм, что делает его важным инструментом для приложений HR, управления и бизнес-анализа.

Пожалуйста, загрузите пакет или установите API из PyPI, используя следующую команду pip в консоли:

pip install aspose-diagram-python 

Создайте организационную структуру компании в стиле CompactTree

Мы можем легко создать организационную структуру компании в стиле CompactTree, выполнив следующие шаги:

  1. Загрузите мастера из любой существующей диаграммы, трафарета или шаблона.
  2. Определите значения для построения иерархии.
  3. Создайте экземпляр класса Diagram.
  4. Добавляйте формы и связи между узлами.
  5. Укажите LayoutOptions и задайте LayoutStyle.COMPACTTREE.
  6. Сохраните выходную диаграмму, используя метод save().

В следующем примере кода показано, как создать организационную структуру компании в стиле CompactTree с помощью Python.

# В этом примере кода показано, как создать организационную структуру компании в стиле CompactTree.
import aspose.diagram
from aspose.diagram import *

# Загружайте мастера из любой существующей диаграммы, трафарета или шаблона.
visioStencil = "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5

# Определите значения для построения иерархии
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"]

# Определите словарь для сопоставления имени строки с длинным идентификатором фигуры.
shapeIdMap = {}

# Создать новую диаграмму
diagram = Diagram(visioStencil)
diagram.pages[pageNumber].page_sheet.page_props.page_width.value = 11.0

for orgnode in listPos:
    # Добавьте новую фигуру прямоугольника
    rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
    pinX += 1
    pinY += 1
    # Установите свойства новой фигуры
    shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
    shape.text.value.add(Txt(orgnode))
    shape.name = orgnode
    shapeIdMap[orgnode] = rectangleId

# Создание соединений между узлами
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)

# Автоматическая компоновка диаграммы CompactTree
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)

# Сохранить диаграмму
diagram.save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX)
Создайте организационную структуру компании в стиле CompactTree, используя Python

Создайте организационную структуру в стиле блок-схемы

Точно так же мы можем создать организационную диаграмму компании в стиле FlowChart, выполнив шаги, упомянутые выше. Однако нам просто нужно указать LayoutStyle.FLOWCHART на шаге 5.

В следующем примере кода показано, как создать организационную структуру компании в стиле FlowChart с помощью Python.

# В этом примере кода показано, как создать организационную диаграмму компании в стиле FlowChart.
import aspose.diagram
from aspose.diagram import *

# Загружайте мастера из любой существующей диаграммы, трафарета или шаблона.
visioStencil = "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5

# Определите значения для построения иерархии
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"]

# Определите словарь для сопоставления имени строки с длинным идентификатором фигуры.
shapeIdMap = {}

# Создать новую диаграмму
diagram = Diagram(visioStencil)

for orgnode in listPos:
    # Добавьте новую фигуру прямоугольника
    rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
    pinX += 1
    pinY += 1
    # Установите свойства новой фигуры
    shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
    shape.text.value.add(Txt(orgnode))
    shape.name = orgnode
    shapeIdMap[orgnode] = rectangleId

# Создание соединений между узлами
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)

# Автоматическая компоновка
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)

# Сохранить диаграмму
diagram.save("FlowChart_out.vsdx", SaveFileFormat.VSDX)
Создайте организационную структуру компании в стиле блок-схемы, используя Python

Получите бесплатную временную лицензию

Получите бесплатную лицензию для создания организационных схем компании в Visio без ограничений. Посетите нашу страницу «Временная лицензия», чтобы узнать, как получить бесплатную лицензию и начать использовать API для создания организационных диаграмм Python прямо сейчас!

Создатель организационных диаграмм Python — бесплатные ресурсы

Помимо создания организационных диаграмм компании, вы можете узнать больше о программном создании или редактировании организационных диаграмм и изучить различные другие функции библиотеки, используя приведенные ниже ресурсы:

Заключение

В этом сообщении блога мы увидели, как создать организационную структуру компании на Python с помощью Aspose.Diagram for Python. Всего с помощью нескольких строк кода вы можете создать профессионально выглядящую диаграмму, показывающую структуру вашей компании. Aspose.Diagram for Python — это мощный инструмент, который поможет вам автоматизировать процесс создания и изменения диаграмм, что делает его незаменимой библиотекой для любого разработчика Python, работающего с файлами Visio. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме бесплатной поддержки.

Смотрите также