Create Gantt Chart in Excel using Python

Visualisering av uppgifter på en tidslinje hjälper till att hantera projekt bättre. I den här artikeln kommer du att lära dig hur man skapar ett Gantt-diagram i Excel med Python med Aspose.Cells för Python via .NET. Med bara några få rader kod kan du omvandla enkel uppgiftsdata till en dynamisk och ren visuell tidslinje, idealisk för rapporter, instrumentpaneler och planeringsdokument. Låt oss gå igenom det steg för steg.

Denna artikel behandlar följande ämnen:

Python Excel-bibliotek för Gantt-diagram

Aspose.Cells for Python via .NET är ett kraftfullt bibliotek för att arbeta med Excel-filer i Python. Det gör att du kan skapa, ändra och formatera kalkylblad programmässigt - inklusive diagram som Gantt-diagram.

Nyckelfunktioner:

  • Full control over Excel charts and data.
  • Support för XLSX, XLS, CSV och PDF.
  • Hög prestanda med stora filer.
  • Rika anpassningsalternativ för diagram.

För att komma igång, vänligen installera biblioteket med:

pip install aspose-cells

Du kan också ladda ner den från releases.

Gantt-diagram med staplade stapeldiagram

Excel erbjuder ingen inbyggd Gantt-diagramtyp, och det gör inte heller Aspose.Cells. Men du kan fortfarande skapa ett genom att använda ett staplat stolp-diagram med lite formatering. Det här är en vanlig teknik, och Aspose.Cells stöder den helt genom kod.

Vad du kan göra med Aspose.Cells

Du kan enkelt automatisera ett Gantt-diagram i Excel genom att göra följande:

  • Ange uppgiftsdata (uppgiftsnamn, startdatum och varaktighet).
  • Infoga ett staplat diagram.
  • Använd en serie för “startförskjutning” (osynlig) och en annan för “varaktighet” (synlig).
  • Formatera diagrammet så att det ser ut som ett Gantt-diagram.

Detta ger dig en professionellt utseende tidslinje som du kan generera dynamiskt.

Sample Task Data

Här är ett exempel på en tabell som vi kommer att använda:

UppgiftStartdatumVaraktighetStartfördröjning
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

Följ dessa steg för att skapa ett Gantt-schema i Excel med Python med Aspose.Cells för Python via .NET:

  • Ladda en befintlig Excel-datafil med hjälp av Workbook-klassen.
  • Hämta det första kalkylbladet med workbook.worksheets[0].
  • Lägg till ett staplat stapeldiagram för att lägga till ett Gantt-diagramlayout.
  • Lägg till två dataserier: en för förskjutningen och en för varaktigheten.
  • Ställ in uppgiftsnamn som kategorietiketter.
  • Justera stilar och axelinställningar för att formatera diagrammet.
  • Spara filen med hjälp av workbook.save()-metoden.

Här är en Python-kodsnutt som utför alla dessa steg:

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

# Ladda Excel-filen
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)

# Lägg till Gantt-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"

# Lägg till offset och varaktighet som serie
chart.n_series.add("D2:D6", True)  # Start Offset
chart.n_series.add("C2:C6", True)  # Duration

# Ställ upp uppgiftsnamn som kategorier
chart.n_series.category_data = "A2:A6"

# Gör förskjutna staplar osynliga
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Stil duration bars
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

# Axelinställningar
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

# Dölj legendan
chart.show_legend = False

# Ändra storlek på diagram (valfritt)
chart.chart_object.width = 700
chart.chart_object.height = 400

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

Detta kommer att generera ett rent Gantt-liknande diagram med dina uppgifter.

Skapa ett Gantt-schema i Excel med Python

Create a Gantt Chart in Excel using Python

Anpassa Gantt-schemat

Du kan anpassa ditt Gantt-schema med hjälp av följande tillgängliga alternativ:

Bar Colors

Ställ in en solid färg för varaktighetsstänger:

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

Transparent Offsets

Gör de osynliga staplarna helt genomskinliga.

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

Task Order

Vänd Y-axeln för att visa uppgifter från topp till botten:

chart.category_axis.is_plot_order_reversed = True

Data Labels

Visa varaktighet direkt på varje aktivitetsfält:

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

Legend Control

Ta bort eller flytta diagramlegenden.

chart.show_legend = False

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

Ställ in anpassade färger för staplar

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

Ändra storlek på diagrammet

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

Exportera till PDF eller bild

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

Följande Python-kodsnutt tillämpar några av de anpassningar som nämns ovan:

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

# Initiera arbetsbok och arbetsblad
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"

# Projektets startdatum
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")

# Task data: [Task Name, Start Date, Duration]
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"]
]

# Fyll i data i arket
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 och slutdatum formler
    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()

# Lägg till Gantt-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"

# Lägg till dataserier: Offset (osynlig), Varaktighet (synlig)
chart.n_series.add("D2:D6", True)  # Offset
chart.n_series.add("C2:C6", True)  # Duration

# Ställ in uppgiftsnamn som kategorimärken
chart.n_series.category_data = "A2:A6"

# Gör förskjutna staplar osynliga
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE

# Färga varje uppgiftfält olika
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)

# Visa datamärken på varaktighetsfält.
duration_series.data_labels.show_value = True

# Axelkonfiguration
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

# Dölj legendan
chart.show_legend = False

# Ändra storlek på diagrammet
chart.chart_object.width = 700
chart.chart_object.height = 400

# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)
Anpassa Gantt-diagrammet i Excel med Python

Anpassa Gantt-diagrammet i Excel med Python

Få en gratis licens

Du kan begära en gratis temporär licens för att utforska hela kapabiliteterna i Aspose.Cells utan några begränsningar eller vattenstämplar.

Ytterligare resurser

Vill du utforska mer? Länkarna nedan hjälper dig att dyka djupare in i Aspose.Cells för Python via .NET. Oavsett om du letar efter detaljerade guider, API-referenser eller gratisverktyg, så har dessa resurser vad du behöver.

Final Words

Att skapa ett Gantt-diagram i Excel med Python är enkelt och effektivt med Aspose.Cells för Python via .NET. Det ger dig fullständig kontroll över diagramdesign och Excel-automatisering. Prova det med dina projektdata och se skillnaden.

Om du har några frågor, tveka inte att kontakta oss på vårt free support forum.

Se även