Create Gantt Chart in Excel using Python

Vizualizace úkolů na časové ose pomáhá lépe řídit projekty. V tomto článku se naučíte, jak vytvořit Ganttův diagram v Excelu pomocí Pythonu s Aspose.Cells for Python via .NET. S pouhými několika řádky kódu můžete převést jednoduchá data úkolů na dynamickou a čistou vizuální časovou osu, ideální pro zprávy, panely s informacemi a plánovací dokumenty. Pojďme si to projít krok za krokem.

Tento článek pokrývá následující témata:

Python Excel knihovna pro Ganttovy diagramy

Aspose.Cells for Python via .NET je výkonná knihovna pro práci s Excel soubory v Pythonu. Umožňuje vám programově vytvářet, upravovat a formátovat tabulky—včetně diagramů, jako jsou Ganttovy diagramy.

Klíčové vlastnosti:

  • Plná kontrola nad grafy a daty v Excelu.
  • Podpora pro XLSX, XLS, CSV a PDF.
  • Vysoký výkon s velkými soubory.
  • Možnosti přizpůsobení bohatého grafu.

Pro zahájení prosím nainstalujte knihovnu pomocí:

pip install aspose-cells

Můžete si to také stáhnout z releases.

Ganttovy diagramy s hromadnými sloupcovými diagramy

Excel nenabízí vestavěný typ Ganttova diagramu, ani Aspose.Cells. Ale stále si můžete jeden vytvořit pomocí zhuštěného sloupcového grafu s trochou formátování. To je běžná technika a Aspose.Cells to plně podporuje prostřednictvím kódu.

Co můžete dělat s Aspose.Cells

Můžete snadno automatizovat Ganttův diagram v Excelu tak, že provedete následující:

  • Zadejte údaje o úkolu (název úkolu, datum začátku a trvání).
  • Vložte sloupcový graf s vrstvením.
  • Použijte jednu sérii pro "počáteční posun" (neviditelný) a druhou pro "trvání" (viditelné).
  • Naformátujte tabulku tak, aby vypadala jako Ganttův diagram.

Tohle vám poskytne profesionálně vypadající časovou osu, kterou můžete dynamicky generovat.

Sample Task Data

Tady je vzorová tabulka, kterou budeme používat:

ÚkolDatum začátkuDoba trváníPočáteční posun
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

Následujte tyto kroky pro vytvoření Ganttova diagramu v Excelu za použití Pythonu s Aspose.Cells for Python prostřednictvím .NET:

  • Načtěte existující datový soubor Excel pomocí třídy Workbook.
  • Získejte první pracovní list pomocí workbook.worksheets[0].
  • Přidejte sloupcový graf, abyste přidali rozložení Ganttova grafu.
  • Přidejte dvě datové řady: jednu pro offset a jednu pro trvání.
  • Nastavte názvy úkolů jako kategorie.
  • Upravte styly a nastavení os, aby se graf správně naformátoval.
  • Uložte soubor pomocí metody workbook.save().

Tady je úryvek kódu v Pythonu, který provádí všechny tyto kroky:

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

# Načtěte soubor Excel.
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)

# Přidat Ganttův diagram
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Gantt Chart"

# Přidejte offset a trvání jako sérii
chart.n_series.add("D2:D6", True)  # Start Offset
chart.n_series.add("C2:C6", True)  # Duration

# Nastavte názvy úkolů jako kategorie
chart.n_series.category_data = "A2:A6"

# Udělej offsetové pruhy neviditelné
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Stylizovat trvání pruhů
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

# Nastavení osy
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

# Skryt legendu
chart.show_legend = False

# Změnit velikost grafu (volitelné)
chart.chart_object.width = 700
chart.chart_object.height = 400

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

To bude generovat čistý Ganttův diagram s vašimi úkolovými daty.

Create a Gantt Chart in Excel using Python

Vytvořte Ganttův diagram v Excelu pomocí Pythonu

Přizpůsobte Ganttův diagram

Můžete přizpůsobit svůj Ganttův diagram pomocí následujících dostupných možností:

Bar Colors

Nastavte pro trvání lišt jednobarevnou barvu:

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

Transparent Offsets

Udělejte offset (neviditelné) pruhy zcela průhledné.

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

Úkolový pořadí

Obraťte osu Y, aby se úkoly zobrazovaly shora dolů:

chart.category_axis.is_plot_order_reversed = True

Data Labels

Zobrazit dobu trvání přímo na každém panelu úloh:

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

Legend Control

Odstraňte nebo přesuňte legendu grafu.

chart.show_legend = False

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

Nastavit vlastní barvy lišty

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

Změňte velikost grafu

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

Exportovat do PDF nebo obrázku

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

Následující úryvek kódu v Pythonu aplikuje některé z výše zmíněných přizpůsobení:

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

# Inicializovat pracovní knihu a pracovní list
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"

# Datum zahájení 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")

# Údaje o úloze: [Název úlohy, Datum začátku, Doba trvání]
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"]
]

# Vyplňte údaje do tabulky
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 a koncové datumové vzorce
    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 sloupce
sheet.auto_fit_columns()

# Přidat Ganttův diagram
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"

# Přidat datové řady: Offset (neviditelný), Doba trvání (viditelná)
chart.n_series.add("D2:D6", True)  # Offset
chart.n_series.add("C2:C6", True)  # Duration

# Nastavte názvy úkolů jako štítky kategorií
chart.n_series.category_data = "A2:A6"

# Udělejte offsetové lišty neviditelné
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Zbarvěte každý úkolový panel jinak
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)

# Zobrazit datové štítky na pruhách trvání
duration_series.data_labels.show_value = True

# Konfigurace osy
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

# Skryj legendu
chart.show_legend = False

# Změnit velikost grafu
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)
Přizpůsobení Ganttova diagramu v Excelu pomocí Pythonu

Přizpůsobení Ganttova grafu v Excelu pomocí Pythonu

Získejte bezplatnou licenci

Můžete request a free temporary license k prozkoumání plných možností Aspose.Cells bez jakýchkoli omezení nebo vodoznaků.

Další zdroje

Chcete prozkoumat více? Odkazy níže vám pomohou hlouběji se ponořit do Aspose.Cells for Python prostřednictvím .NET. Ať už hledáte podrobné průvodce, API reference nebo zdarma nástroje, tyto zdroje vás pokryjí.

Závěrečná slova

Vytváření Ganttova diagramu v Excelu pomocí Pythonu je jednoduché a efektivní s použitím Aspose.Cells for Python přes .NET. Dává vám plnou kontrolu nad návrhem grafu a automatizací Excelu. Vyzkoušejte to se svými projektovými daty a uvidíte rozdíl.

Pokud narazíte na nějaké otázky, neváhejte se obrátit na naše free support forum.

See Also