
Wizualizacja zadań na osi czasu pomaga lepiej zarządzać projektami. W tym artykule dowiesz się, jak stworzyć wykres Gantta w Excelu, używając Python z Aspose.Cells for Python przez .NET. W zaledwie kilku linijkach kodu możesz przekształcić proste dane o zadaniach w dynamiczną i przejrzystą wizualizację osi czasu, idealną do raportów, pulpitów nawigacyjnych i dokumentów planistycznych. Przejdźmy przez to krok po kroku.
Ten artykuł porusza następujące tematy:
- Biblioteka Python Excel do wykresów Gantta
- Wykres Gantta przy użyciu wykresów słupkowych warstwowych
- Create a Gantt Chart in Excel using Python
- Dostosuj wykres Gantta w Excelu za pomocą Python
- Zbadaj darmowe zasoby
Python Excel Library for Gantt Charts
Aspose.Cells for Python via .NET to potężna biblioteka do pracy z plikami Excel w Python. Umożliwia tworzenie, modyfikowanie i formatowanie arkuszy kalkulacyjnych programowo — w tym wykresów, takich jak wykresy Gantta.
Kluczowe funkcje:
- Pełna kontrola nad wykresami i danymi w Excelu.
- Wsparcie dla XLSX, XLS, CSV i PDF.
- Wysoka wydajność przy dużych plikach.
- Bogate opcje dostosowywania wykresów.
Aby zacząć, zainstaluj bibliotekę za pomocą:
pip install aspose-cells
Możesz również pobrać go z releases.
Wykresy Gantta z wykresami słupkowymi zgrupowanymi
Excel nie oferuje wbudowanego typu wykresu Gantta, podobnie jak Aspose.Cells. Możesz jednak utworzyć go, używając wykresu słupkowego skumulowanego z odrobiną formatowania. To powszechna technika, a Aspose.Cells w pełni ją wspiera za pomocą kodu.
Co możesz zrobić z Aspose.Cells
Możesz łatwo zautomatyzować wykres Gantta w Excelu, wykonując następujące czynności:
- Wprowadź dane zadania (nazwa zadania, data rozpoczęcia i czas trwania).
- Wstaw wykres słupkowy skumulowany.
- Użyj jednej serii dla
przesunięcia na początku” (niewidoczne) i innej dla
czas trwania” (widoczne). - Sformatuj wykres, aby wyglądał jak wykres Gantta.
To daje ci profesjonalnie wyglądający harmonogram, który możesz generować dynamicznie.
Sample Task Data
Oto przykładowa tabela, którą użyjemy:
Zadanie | Data rozpoczęcia | Czas trwania | Przesunięcie startowe |
---|---|---|---|
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 |
Create a Gantt Chart in Excel using Python
Postępuj zgodnie z tymi krokami, aby utworzyć wykres Gantta w Excelu za pomocą Python z Aspose.Cells for Python przez .NET:
- Załaduj istniejący plik danych Excel za pomocą klasy
Workbook
. - Uzyskaj pierwszy arkusz roboczy za pomocą
workbook.worksheets[0]
. - Dodaj wykres słupkowy skumulowany, aby dodać układ wykresu Gantta.
- Dodaj dwa zestawy danych: jeden dla offsetu, a drugi dla czasu trwania.
- Ustaw nazwy zadań jako etykiety kategorii.
- Dostosuj style i ustawienia osi, aby sformatować wykres.
- Zapisz plik używając metody
workbook.save()
.
Oto fragment kodu Python, który wykonuje wszystkie te kroki:
import aspose.cells as cells
from aspose.pydrawing import Color
# Załaduj plik Excel
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)
# Dodaj wykres Gantta
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Gantt Chart"
# Dodaj offset i czas trwania jako serie
chart.n_series.add("D2:D6", True) # Start Offset
chart.n_series.add("C2:C6", True) # Duration
# Ustaw nazwy zadań jako kategorie
chart.n_series.category_data = "A2:A6"
# Zrób niewidoczne paski przesunięcia
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# Stylizuj paski czasu
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
# Ustawienia osi
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
# Ukryj legendę
chart.show_legend = False
# Zmień rozmiar wykresu (opcjonalnie)
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save the result
workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)
To wygeneruje czysty wykres w stylu Gantta z danymi o Twoich zadaniach.

Create a Gantt Chart in Excel using Python
Dostosuj wykres Gantta
Możesz dostosować swój wykres Gantta, korzystając z dostępnych opcji:
Kolory pasków
Ustaw jednolity kolor dla pasków czasu:
chart.n_series[1].area.foreground_color = Color.steel_blue
Przezroczyste offsety
Zrób niewidoczne paski offsetowe całkowicie przezroczyste.
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
Task Order
Odwróć oś Y, aby pokazać zadania od góry do dołu:
chart.category_axis.is_plot_order_reversed = True
Etykiety danych
Pokaż czas trwania bezpośrednio na każdym pasku zadań:
chart.n_series[1].data_labels.show_value = True
Legend Control
Usuń lub przesuń legendę wykresu.
chart.show_legend = False
# Or reposition:
chart.legend.position = cells.charts.LegendPositionType.BOTTOM
Ustaw niestandardowe kolory pasków
chart.n_series[1].points[0].area.foreground_color = Color.green
chart.n_series[1].points[1].area.foreground_color = Color.red
Zmień rozmiar wykresu
chart.chart_object.width = 700
chart.chart_object.height = 400
Eksportuj do PDF lub obrazu
workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF)
chart.to_image("chart.png")
Następujący fragment kodu Python stosuje niektóre z wymienionych powyżej dostosowań:
import aspose.cells as cells
from aspose.pydrawing import Color
import datetime
# Zainicjuj skoroszyt i arkusz kalkulacyjny
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"
# Data rozpoczęcia projektu
project_start = datetime.date(2025, 4, 1)
# Headers
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")
# Dane zadania: [Nazwa zadania, Data rozpoczęcia, Czas trwania]
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"]
]
# Wypełnij dane w arkuszu
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
# Formuły Offset i 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
# Auto-fit columns
sheet.auto_fit_columns()
# Dodaj diagram Gantta
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"
# Dodaj serię danych: Offset (niewidoczny), Czas trwania (widoczny)
chart.n_series.add("D2:D6", True) # Offset
chart.n_series.add("C2:C6", True) # Duration
# Ustaw nazwy zadań jako etykiety kategorii
chart.n_series.category_data = "A2:A6"
# Ukryj paski przesunięcia
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# Pok coloruj każdy pasek zadań inaczej
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)
# Pokaż etykiety danych na paskach czasu
duration_series.data_labels.show_value = True
# Konfiguracja osi
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
# Ukryj legendę
chart.show_legend = False
# Zmień rozmiar wykresu
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)

Dostosuj wykres Gantta w Excelu za pomocą Python
Zdobądź darmową licencję
Możesz poprosić o bezpłatną tymczasową licencję, aby zbadać pełne możliwości Aspose.Cells bez żadnych ograniczeń lub znaków wodnych.
Dodatkowe zasoby
Chcesz zbadać więcej? Poniższe linki pomogą Ci zanurkować głębiej w Aspose.Cells for Python za pośrednictwem .NET. Niezależnie od tego, czy szukasz szczegółowych przewodników, odniesień API, czy darmowych narzędzi, te zasoby mają wszystko, czego potrzebujesz.
Ostatnie słowa
Tworzenie wykresu Gantta w Excelu za pomocą Python jest proste i skuteczne dzięki Aspose.Cells for Python przez .NET. Daje to pełną kontrolę nad projektowaniem wykresu i automatyzacją Excela. Wypróbuj to z danymi swojego projektu i zobacz różnicę.
Jeśli napotkasz jakiekolwiek pytania, nie wahaj się skontaktować z nami na naszym free support forum.