Створіть діаграму Ганта в Excel з використанням Python

Візуалізація завдань на часовій шкалі допомагає краще управляти проектами. У цій статті ви дізнаєтеся, як створити діаграму Ганта в Excel, використовуючи Python з Aspose.Cells for Python через .NET. З всього лише кількома рядками коду ви можете перетворити прості дані про завдання в динамічну та чисту візуальну часову шкалу, ідеальну для звітів, панелей управління та планувальних документів. Давайте пройдемо через це крок за кроком.

Ця стаття охоплює такі теми:

Python Excel Library for Gantt Charts

Aspose.Cells for Python via .NET є потужною бібліотекою для роботи з Excel файлами в Python. Вона дозволяє вам створювати, модифікувати та форматувати електронні таблиці програмним шляхом, включаючи графіки, такі як графіки Ганта.

Ключові особливості:

  • Повний контроль над графіками та даними Excel.
  • Підтримка для XLSX, XLS, CSV та PDF.
  • Висока продуктивність з великими файлами.
  • Багаті можливості налаштування діаграм.

Щоб почати, будь ласка, встановіть бібліотеку за допомогою:

pip install aspose-cells

Ви також можете завантажити його з releases.

Графіки Ганта зі стеками гістограм

Excel не надає вбудованого типу діаграми Ганта, і Aspose.Cells також не надає. Але ви все ще можете створити його, використовуючи стекову діаграму з деяким форматуванням. Це популярна техніка, і Aspose.Cells повністю підтримує її через код.

Що ви можете зробити з Aspose.Cells

Ви можете легко автоматизувати діаграму Ганта в Excel, виконавши наступне:

  • Введіть дані завдання (назва завдання, дата початку та тривалість).
  • Вставте стовпчасту діаграму.
  • Використовуйте одну серію для початкового зсуву (невидимий) і іншу для тривалості (видимий).
  • Отформатуйте діаграму, щоб вона виглядала як діаграма Ганта.

Це надає вам професійно виглядаючу часову шкалу, яку ви можете генерувати динамічно.

Sample Task Data

Ось зразок таблиці, яку ми будемо використовувати:

TaskStart DateDurationStart Offset
Task 12025-04-0130
Task 22025-04-0362
Task 32025-04-08107
Task 42025-04-18317
Task 52025-04-21520

Create a Gantt Chart in Excel using Python

Слідуйте цим крокам, щоб створити діаграму Ганта в Excel за допомогою Python з Aspose.Cells for Python через .NET:

  • Завантажте існуючий файл даних Excel за допомогою класу Workbook.
  • Отримайте перший аркуш за допомогою workbook.worksheets[0].
  • Додайте стовпчасту діаграму, щоб додати макет діаграми Ганта.
  • Додайте дві серії даних: одну для зміщення і одну для тривалості.
  • Встановіть назви завдань як категорійні мітки.
  • Отрегулюйте стилі та налаштування осей для форматування діаграми.
  • Збережіть файл за допомогою методу workbook.save().

Ось фрагмент коду на Python, який виконує всі ці кроки:

import aspose.cells as cells
from aspose.pydrawing import Color

# Завантажте файл Excel
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)

# Додати діаграму Ганта
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Gantt Chart"

# Додати зсув і тривалість як серію
chart.n_series.add("D2:D6", True)  # Start Offset
chart.n_series.add("C2:C6", True)  # Duration

# Встановіть імена завдань як категорії
chart.n_series.category_data = "A2:A6"

# Приховати бокові смуги
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Стилізуйте тривалість смуг
chart.n_series[1].area.formatting = cells.charts.FormattingType.CUSTOM
chart.n_series[1].area.foreground_color = Color.steel_blue
chart.n_series[1].data_labels.show_value = True

# Налаштування осей
chart.category_axis.is_plot_order_reversed = True
chart.category_axis.title.text = "Tasks"
chart.value_axis.title.text = "Days from Start"
chart.value_axis.major_grid_lines.is_visible = True

# Сховати легенду
chart.show_legend = False

# Змінити розмір діаграми (додатково)
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save the result
workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)

Це створить чисту діаграму Ганта зі вашими даними задач.

Create a Gantt Chart in Excel using Python

Create a Gantt Chart in Excel using Python

Налаштуйте діаграму Ганта

Ви можете налаштувати свою діаграму Ганта, використовуючи наступні доступні параметри:

Bar Colors

Встановіть однорідний колір для смуг тривалості:

chart.n_series[1].area.foreground_color = Color.steel_blue

Прозорі зміщення

Зробіть непрозорі (невидимі) смуги повністю прозорими.

chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

Task Order

Відобразіть вісь Y у зворотному порядку, щоб показати завдання зверху вниз:

chart.category_axis.is_plot_order_reversed = True

Мітки даних

Показати тривалість безпосередньо на кожній панелі завдань:

chart.n_series[1].data_labels.show_value = True

Legend Control

Видаліть або перемістіть легенду діаграми.

chart.show_legend = False

# Or reposition: 
chart.legend.position = cells.charts.LegendPositionType.BOTTOM

Налаштуйте кольори індикаторів користувача

chart.n_series[1].points[0].area.foreground_color = Color.green
chart.n_series[1].points[1].area.foreground_color = Color.red

Змініть розмір діаграми

chart.chart_object.width = 700
chart.chart_object.height = 400

Експорт в PDF або зображення

workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF)
chart.to_image("chart.png")

Наступний фрагмент коду Python застосовує деякі з вказаних вище налаштувань:

import aspose.cells as cells
from aspose.pydrawing import Color
import datetime

# Ініціалізуйте книгу та аркуш.
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"

# Дата початку проекту
project_start = datetime.date(2025, 4, 1)

# Заголовки
sheet.cells.get("A1").put_value("Task")
sheet.cells.get("B1").put_value("Start Date")
sheet.cells.get("C1").put_value("Duration (Days)")
sheet.cells.get("D1").put_value("Start Offset")
sheet.cells.get("E1").put_value("End Date")

# Дані завдання: [Назва завдання, Дата початку, Тривалість]
tasks = [
    ["Task 1", "2025-04-01", "3"],
    ["Task 2", "2025-04-03", "6"],
    ["Task 3", "2025-04-08", "10"],
    ["Task 4", "2025-04-18", "3"],
    ["Task 5", "2025-04-21", "5"]
]

# Заповніть дані у таблиці
for i, task in enumerate(tasks):
    row = i + 2  # Start from row 2
    sheet.cells.get(row, 0).put_value(task[0])  # Task Name
    sheet.cells.get(row, 1).put_value(datetime.datetime.strptime(task[1], "%Y-%m-%d").date())  # Start Date
    sheet.cells.get(row, 2).put_value(int(task[2]))  # Duration

    # Формули Offset і End Date
    sheet.cells.get(row, 3).formula = f"=B{row + 1} - DATE(2025,4,1)"  # Offset
    sheet.cells.get(row, 4).formula = f"=B{row + 1} + C{row + 1}"  # End Date

# Автоматично підлаштувати стовпці
sheet.auto_fit_columns()

# Додати діаграму Ганта
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 10, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Project Gantt Chart"

# Додати серії даних: Зсув (невидимий), Тривалість (видимий)
chart.n_series.add("D2:D6", True)  # Offset
chart.n_series.add("C2:C6", True)  # Duration

# Встановіть імена завдань як мітки категорій
chart.n_series.category_data = "A2:A6"

# Зробіть стовпчики зсуву невидимими
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Розфарбуйте кожну панель завдань по-різному.
duration_series = chart.n_series[1]
for i in range(duration_series.points.count):
    red = 100 + i * 30
    duration_series.points[i].area.foreground_color = Color.from_argb(255, red, 150)

# Показати позначки даних на барах тривалості
duration_series.data_labels.show_value = True

# Конфігурація осі
chart.category_axis.title.text = "Tasks"
chart.category_axis.is_plot_order_reversed = True
chart.value_axis.title.text = "Days from Project Start"
chart.value_axis.major_grid_lines.is_visible = True
chart.value_axis.min_value = 0
chart.value_axis.major_unit = 5.0

# Сховати легенду
chart.show_legend = False

# Змініть розмір діаграми
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)
Налаштування діаграми Ганта в Excel за допомогою Python

Налаштуйте діаграму Ганта в Excel за допомогою Python

Отримайте безкоштовну ліцензію

Ви можете request a free temporary license щоб дослідити всі можливості Aspose.Cells без будь-яких обмежень або водяних знаків.

Додаткові ресурси

Бажаєте дослідити більше? Посилання нижче допоможуть вам глибше зануритися в Aspose.Cells for Python через .NET. Чи ви шукаєте детальні посібники, посилання на API або безкоштовні інструменти, ці ресурси вас забезпечать.

Останні слова

Створення діаграми Ганта в Excel за допомогою Python є простим та ефективним за допомогою Aspose.Cells for Python через .NET. Це дає вам повний контроль над дизайном діаграм та автоматизацією Excel. Спробуйте це з вашими даними проекту і побачте різницю.

Якщо у вас виникнуть будь-які питання, будь ласка, не соромтеся звертатися до нас на нашому безкоштовному форумі підтримки.

Дивіться також