Tạo sơ đồ tổ chức công ty bằng Python

Sơ đồ tổ chức thể hiện một cách trực quan hệ thống phân cấp và cơ cấu của một công ty, chính phủ hoặc tổ chức, phục vụ các mục đích như hoạch định và lập kế hoạch chính sách. Bằng cách tận dụng các hình dạng và đường kết nối khác nhau, bạn có thể thiết kế nhiều loại biểu đồ khác nhau. Bài viết này cung cấp hướng dẫn từng bước về cách tạo sơ đồ tổ chức công ty bằng Python, cho phép bạn minh họa và truyền đạt một cách hiệu quả cấu trúc tổ chức của mình.

Bài viết này bao gồm các chủ đề sau:

  1. API tạo biểu đồ tổ chức Python
  2. Tạo sơ đồ tổ chức công ty theo kiểu CompactTree
  3. Tạo sơ đồ tổ chức công ty theo kiểu sơ đồ
  4. Tài nguyên miễn phí

API tạo biểu đồ tổ chức Python – Tải xuống miễn phí

Để tạo sơ đồ tổ chức công ty, chúng tôi sẽ sử dụng Aspose.Diagram for Python. Đây là một API mạnh mẽ cho phép các nhà phát triển tạo, thao tác và chuyển đổi sơ đồ Visio theo chương trình. Với Aspose.Diagram for Python, bạn có thể tự động hóa việc tạo và cập nhật sơ đồ tổ chức, biến nó thành một công cụ thiết yếu cho các ứng dụng phân tích nhân sự, quản lý và kinh doanh.

Vui lòng tải xuống gói hoặc cài đặt API từ PyPI bằng lệnh pip sau trong bảng điều khiển:

pip install aspose-diagram-python 

Tạo sơ đồ tổ chức công ty theo phong cách CompactTree

Chúng ta có thể dễ dàng tạo sơ đồ tổ chức công ty theo kiểu CompactTree bằng cách thực hiện theo các bước dưới đây:

  1. Tải bản gốc từ bất kỳ sơ đồ, khuôn tô hoặc mẫu hiện có nào.
  2. Xác định các giá trị để xây dựng hệ thống phân cấp.
  3. Tạo một thể hiện của lớp Diagram.
  4. Thêm hình dạng và kết nối giữa các nút.
  5. Chỉ định LayoutOptions và đặt LayoutStyle.COMPACTTREE.
  6. Lưu sơ đồ đầu ra bằng phương thức save().

Mẫu mã sau đây cho biết cách tạo sơ đồ tổ chức công ty theo kiểu CompactTree bằng Python.

# Mẫu mã này cho thấy cách tạo sơ đồ tổ chức công ty theo kiểu CompactTree
import aspose.diagram
from aspose.diagram import *

# Tải bản gốc từ bất kỳ sơ đồ, khuôn tô hoặc mẫu hiện có nào
visioStencil = "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5

# Xác định các giá trị để xây dựng hệ thống phân cấp
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"]

# Xác định một từ điển để ánh xạ tên chuỗi thành id hình dạng dài
shapeIdMap = {}

# Tạo sơ đồ mới
diagram = Diagram(visioStencil)
diagram.pages[pageNumber].page_sheet.page_props.page_width.value = 11.0

for orgnode in listPos:
    # Thêm một hình chữ nhật mới
    rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
    pinX += 1
    pinY += 1
    # Đặt thuộc tính của hình dạng mới
    shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
    shape.text.value.add(Txt(orgnode))
    shape.name = orgnode
    shapeIdMap[orgnode] = rectangleId

# Tạo kết nối giữa các nút
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)

# Tự động bố trí biểu đồ 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)

# Lưu sơ đồ
diagram.save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX)
Tạo Sơ đồ tổ chức công ty theo kiểu CompactTree bằng Python

Tạo sơ đồ tổ chức theo kiểu sơ đồ

Tương tự, chúng ta cũng có thể tạo sơ đồ tổ chức công ty theo kiểu FlowChart bằng cách làm theo các bước được đề cập ở trên. Tuy nhiên, chúng ta chỉ cần chỉ định LayoutStyle.FLOWCHART ở bước 5.

Mẫu mã sau đây cho biết cách tạo sơ đồ tổ chức công ty theo kiểu FlowChart bằng Python.

# Mẫu mã này cho thấy cách tạo sơ đồ tổ chức công ty theo kiểu FlowChart
import aspose.diagram
from aspose.diagram import *

# Tải bản gốc từ bất kỳ sơ đồ, khuôn tô hoặc mẫu hiện có nào
visioStencil = "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5

# Xác định các giá trị để xây dựng hệ thống phân cấp
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"]

# Xác định một từ điển để ánh xạ tên chuỗi thành id hình dạng dài
shapeIdMap = {}

# Tạo sơ đồ mới
diagram = Diagram(visioStencil)

for orgnode in listPos:
    # Thêm một hình chữ nhật mới
    rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
    pinX += 1
    pinY += 1
    # Đặt thuộc tính của hình dạng mới
    shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
    shape.text.value.add(Txt(orgnode))
    shape.name = orgnode
    shapeIdMap[orgnode] = rectangleId

# Tạo kết nối giữa các nút
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)

# Sơ đồ bố trí tự động
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)

# Lưu sơ đồ
diagram.save("FlowChart_out.vsdx", SaveFileFormat.VSDX)
Tạo Sơ đồ tổ chức công ty theo kiểu FlowChart bằng Python

Nhận giấy phép tạm thời miễn phí

Nhận giấy phép miễn phí để tạo sơ đồ tổ chức công ty trong Visio mà không có giới hạn. Hãy truy cập trang ‘Giấy phép tạm thời’ của chúng tôi để biết các bước đơn giản để nhận được giấy phép miễn phí và bắt đầu sử dụng API tạo biểu đồ tổ chức Python ngay lập tức!

Trình tạo biểu đồ tổ chức Python – Tài nguyên miễn phí

Bên cạnh việc tạo sơ đồ tổ chức công ty, bạn có thể tìm hiểu thêm về cách tạo hoặc chỉnh sửa sơ đồ tổ chức theo chương trình và khám phá nhiều tính năng khác của thư viện bằng cách sử dụng các tài nguyên bên dưới:

Phần kết luận

Trong bài đăng trên blog này, chúng ta đã biết cách tạo sơ đồ tổ chức công ty bằng Python bằng Aspose.Diagram for Python. Chỉ với một vài dòng mã, bạn có thể tạo một biểu đồ trông chuyên nghiệp thể hiện cấu trúc công ty của mình. Aspose.Diagram for Python là một công cụ mạnh mẽ có thể giúp bạn tự động hóa quá trình tạo và sửa đổi sơ đồ, biến nó thành thư viện cần thiết cho bất kỳ nhà phát triển Python nào làm việc với tệp Visio. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm