
Визуализация задач на временной шкале помогает лучше управлять проектами. В этой статье вы узнаете, как создать диаграмму Ганта в Excel с помощью Python и Aspose.Cells for Python через .NET. Всего за несколько строк кода вы можете превратить простые данные о задачах в динамическую и аккуратную визуальную шкалу времени, идеально подходящую для отчетов, панелей мониторинга и планировочных документов. Давайте пройдем через это шаг за шагом.
Эта статья охватывает следующие темы:
- Библиотека Excel для Python для диаграмм Ганта
- Диаграмма Ганта с использованием составных столбчатых диаграмм
- Создайте диаграмму Ганта в Excel, используя Python
- Настройка диаграммы Ганта в Excel с использованием Python
- Исследуйте бесплатные ресурсы
Библиотека Python Excel для диаграмм Ганта
Aspose.Cells for Python via .NET — это мощная библиотека для работы с файлами Excel на Python. Она позволяет вам создавать, изменять и форматировать электронные таблицы программным способом, включая такие диаграммы, как диаграммы Ганта.
Ключевые особенности:
- Полный контроль над графиками и данными Excel.
- Поддержка XLSX, XLS, CSV и PDF.
- Высокая производительность с большими файлами.
- Опции настройкиRich графиков.
Чтобы начать, пожалуйста, установите библиотеку с помощью:
pip install aspose-cells
Вы также можете скачать его из releases.
Диаграммы Ганта с наложенными столбиковыми диаграммами
Excel не предоставляет встроенный тип диаграммы Ганта, как и Aspose.Cells. Но вы все равно можете создать такую диаграмму, используяStacked Bar Chartс небольшим форматированием. Это распространенная техника, иAspose.Cellsполностью поддерживает это через код.
Что вы можете сделать с Aspose.Cells
Вы можете легко автоматизировать диаграмму Ганта в Excel, сделав следующее:
- Введите данные задачи (название задачи, дата начала и продолжительность).
- Вставьте столбчатую диаграмму.
- Используйте одну серию для "начального смещения" (невидимый) и другую для "длительности" (видимый).
- Отформатируйте график так, чтобы он выглядел как диаграмма Ганта.
Это дает вам профессионально выглядящий таймлайн, который вы можете генерировать динамически.
Sample Task Data
Вот пример таблицы, которую мы будем использовать:
Задача | Дата начала | Продолжительность | Смещение начала |
---|---|---|---|
Task 1 | 2025-04-01 | 3 | 0 |
Task 2 | 2025-04-03 | 6 | 2 |
Task 3 | 2025-04-08 | 10 | 7 |
Task 4 | 2025-04-18 | 3 | 17 |
Task 5 | 2025-04-21 | 5 | 20 |
Создайте диаграмму Ганта в Excel с использованием 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)
Это создаст четкую диаграмму Ганта с вашими данными задач.

Создайте диаграмму Ганта в Excel с помощью Python
Настройте диаграмму Ганта
Вы можете настроить свою диаграмму Ганта, используя следующие доступные параметры:
Цвета баров
Установите однотонный цвет для продолжительности полос:
chart.n_series[1].area.foreground_color = Color.steel_blue
Прозрачные смещения
Сделайте невидимые полосы смещения полностью прозрачными.
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
Заказ задания
Переверните ось 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
# Инициализируйте книгу и лист Excel
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
# Формулы смещения и конечной даты
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
Получите бесплатную лицензию
Вы можете request a free temporary license, чтобы изучить все возможности Aspose.Cells без каких-либо ограничений или водяных знаков.
Дополнительные ресурсы
Хотите исследовать больше? Ссылки ниже помогут вам углубиться в Aspose.Cells for Python через .NET. Если вы ищете подробные руководства, справочные материалы по API или бесплатные инструменты, эти ресурсы вам пригодятся.
Последние слова
Создание диаграммы Ганта в Excel с помощью Python просто и эффективно с использованием Aspose.Cells for Python через .NET. Это дает вам полный контроль над дизайном диаграмм и автоматизацией Excel. Попробуйте это с вашими проектными данными и увидите разницу.
Если у вас возникнут вопросы, пожалуйста, не стесняйтесь обращаться на наш free support forum.