Create Gantt Chart in Excel using C#

Vizualizace časových os projektů je důležitá pro efektivní plánování a sledování. V tomto příspěvku na blogu se naučíte, jak vytvořit Ganttův diagram v Excelu pomocí C#. S pouhými několika řádky kódu můžete automatizovat generování dynamických, vizuálně přitažlivých Ganttových diagramů. Ať už vytváříte nástroj pro správu projektů nebo pracujete na interním reportingu, tento průvodce vám ukáže, jak převést data úkolů na jasnou a profesionální časovou osu—plně přizpůsobitelnou a připravenou k exportu do formátů Excel, PDF nebo obrázků. Pojďme začít!

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

C# Excel Knihovna pro Vytváření Ganttových Grafů

Aspose.Cells for .NET je výkonná knihovna pro Excel, která zjednodušuje proces vytváření Ganttových diagramů v Excelu. Nabízí robustní funkce pro programatickou manipulaci s Excelovými soubory. S Aspose.Cells mohou vývojáři snadno vytvářet, upravovat a přizpůsobovat diagramy a grafy. Tato knihovna podporuje různé formáty Excel a nabízí pokročilé funkce, což z ní činí ideální volbu pro projektové manažery a vývojáře.

Aspose.Cells for .NET vyniká díky své snadné integraci a flexibilitě. Zde jsou některé klíčové funkce:

  • Komplexní API: Přístup k široké škále funkcionalit Excelu.
  • Pokročilé přizpůsobení: Upravte grafy a diagramy podle specifických potřeb.
  • Vysoký výkon: Efektivně zpracovávejte velké datové sady bez kompromisů v rychlosti.
  • Podpora různých formátů: Pracujte s různými formáty Excel, včetně XLSX, XLS a CSV.

Postupujte podle těchto jednoduchých kroků, abyste začali s Aspose.Cells for .NET:

  1. Stáhněte si knihovnu z releases.
  2. Nainstalujte jej pomocí správce balíčků NuGet zadáním následujícího příkazu:
    PM> Install-Package Aspose.Cells
    

Jak vytvořit Ganttův diagram pomocí sloupcových grafů s akumulací

Aspose.Cells nemá vestavěný typ Ganttova diagramu, protože samotný Excel také nenabízí nativní typ Ganttova diagramu. Ganttovy diagramy v Excelu se však obvykle vytvářejí pomocí spletených sloupcových grafů v kombinaci s vlastním formátováním — a Aspose.Cells tuto metodu podporuje programově.

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

Můžete automatizovat vytvoření Ganttova diagramu v Excelu tím, že

  • Nastavení údajů o úkolu (název úkolu, datum zahájení, trvání).
  • Přidání stohovaného pruhového grafu.
  • Použití jedné série pro start offset (skryté) a druhé pro duration (viditelné).
  • Naformátování grafu tak, aby připomínal Ganttův diagram.

Ukázková data Ganttova diagramu


| Task   | Start Date  | Duration | Start Offset |
|--------|-------------|----------|--------------|
| 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 C#

Sledujte tyto kroky, jak vytvořit Ganttův diagram v Excelu pomocí C# s Aspose.Cells for .NET:

  1. Načtěte existující soubor Excel pomocí třídy Workbook.
  2. Přistupte k prvnímu listu pomocí workbook.Worksheets[0].
  3. Přidejte graf pomocí ChartType.BarStacked pro simulaci rozložení Ganttova diagramu.
  4. Přidejte offset a trvání jako série.
  5. Nastavte štítky kategorií pomocí vlastnosti CategoryData.
  6. Nastavte styly a nastavení os.
  7. Uložte sešit pomocí workbook.Save().

Zde je útržek kódu C#, který implementuje výše uvedené kroky:

using Aspose.Cells;
using Aspose.Cells.Charts;

// Načtěte soubor Excel.
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];

// Přidat Ganttův diagram
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";

// Přidejte posun a trvání jako sérii
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Nastavte názvy úkolů jako kategorie
chart.NSeries.CategoryData = "A2:A6";

// Udělejte offsetové pruhy neviditelné
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Stylizovat dobu trvání pásek
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;

// Nastavení os
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;

// Skrýt legendu
chart.ShowLegend = false;

// Změnit velikost grafu (volitelné)
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Save the result
workbook.Save("GanttChartResult.xlsx", SaveFormat.Xlsx);
Vytvořte Ganttův diagram v Excelu pomocí C#

Create a Gantt Chart in Excel using C#

Přizpůsobení Ganttova grafu v Excelu pomocí C#

Můžete vylepšit svůj Ganttův diagram pomocí následujících funkcí přizpůsobení v Aspose.Cells for .NET:

  • Bar Colors Nastavte jednobarevné pozadí pro trvací lišty:

    chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
    
  • Transparent Offsets Make the offset (invisible) bars fully transparent.

    chart.NSeries[0].Area.Formatting = FormattingType.None;
    
  • Úkolový příkaz Otočte osu Y, aby úkoly byly zobrazeny shora dolů:

    chart.CategoryAxis.IsPlotOrderReversed = true;
    
  • Data Labels Zobrazit trvání přímo na každém panelu úloh:

    chart.NSeries[1].DataLabels.ShowValue = true;
    
  • Ovládání legendy Odstraňte nebo přesuňte legendu grafu.

    chart.ShowLegend = false;
    // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
    
  • Individuální stylování baru Nastavte vlastní barvy pro každý úkol.

    var series = chart.NSeries[1];
    series.Points[0].Area.ForegroundColor = Color.Green;
    series.Points[1].Area.ForegroundColor = Color.Red;
    
  • Rozměry grafu Změňte velikost a umístění grafu:

    chart.ChartObject.Width = 700;
    chart.ChartObject.Height = 400;
    
  • Export Options Uložte chart do Excelu, PDF nebo obrázku.

    workbook.Save("GanttChart.xlsx");
    workbook.Save("GanttChart.pdf", SaveFormat.Pdf);
    chart.ToImage("chart.png", ImageFormat.Png);
    

Toto je ukázka kódu C#, která implementuje několik z výše uvedených přizpůsobení:

using Aspose.Cells;
using Aspose.Cells.Charts;

// Inicializujte pracovní sešit a pracovní list.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";

// Ukázková úloha s daty a daty
DateTime projectStart = new DateTime(2025, 4, 1);

// Hlavní nadpisy
sheet.Cells["A1"].PutValue("Task");
sheet.Cells["B1"].PutValue("Start Date");
sheet.Cells["C1"].PutValue("Duration (Days)");
sheet.Cells["D1"].PutValue("Start Offset");
sheet.Cells["E1"].PutValue("End Date");

// Data
string[,] 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 (int i = 0; i < tasks.GetLength(0); i++)
{
    int row = i + 1 + 1; // Start from row 2

    sheet.Cells[row, 0].PutValue(tasks[i, 0]); // Task Name
    sheet.Cells[row, 1].PutValue(DateTime.Parse(tasks[i, 1])); // Start Date
    sheet.Cells[row, 2].PutValue(int.Parse(tasks[i, 2])); // Duration

    // Offset: = StartDate - ProjectStartDate
    sheet.Cells[row, 3].Formula = $"=B{row + 1} - DATE(2025,4,1)";
    sheet.Cells[row, 4].Formula = $"=B{row + 1} + C{row + 1}";
}

// Autofit
sheet.AutoFitColumns();

// Přidejte graf
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";

// Přidat sérii: Offset (neviditelný), Doba trvání (viditelná)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Nastavit kategorie štítků
chart.NSeries.CategoryData = "A2:A6";

// Udělejte sérii Offset průhlednou
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Zbarvěte každý panel úkolů jinak
Series durationSeries = chart.NSeries[1];
for (int i = 0; i < durationSeries.Points.Count; i++)
{
    durationSeries.Points[i].Area.ForegroundColor = Color.FromArgb(255, 100 + i * 30, 150); // Gradient color variation
}

// Zobrazit popisky dat
chart.NSeries[1].DataLabels.ShowValue = true;


// Nastavení osy
chart.CategoryAxis.Title.Text = "Tasks";
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.ValueAxis.Title.Text = "Days from Project Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
chart.ValueAxis.MinValue = 0;
chart.ValueAxis.MajorUnit = 5;

// Odstranit legendu
chart.ShowLegend = false;

// Změňte velikost grafu
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Export do Excel
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);
Přizpůsobení Ganttova diagramu v Excelu pomocí C#

Přizpůsobení Ganttova diagramu v Excelu pomocí C#

Získejte bezplatnou licenci

Zajímáte se o prozkoumání produktů Aspose? Navštivte license page a získejte bezplatnou dočasnou licenci. Je snadné začít a odemknout plný potenciál Aspose.Cells pro vaše projekty!

Ganttova tabulka Excel: Zdarma zdroje

Nebuďte zde! Prozkoumejte další zdroje, které vám pomohou dále zlepšit vaše chápání Aspose.Cells. Tyto zdroje vám pomohou zvládnout automatizaci Excelu a posílit vaše dovednosti.

Závěr

V tomto blogovém příspěvku jsme zkoumali, jak vytvořit Ganttův diagram v Excelu pomocí C#. Aspose.Cells for .NET zjednodušuje tento proces svými výkonnými funkcemi a flexibilitou. Doporučujeme vám prozkoumat více o Aspose.Cells for .NET, abyste zlepšili své schopnosti v oblasti řízení projektů.

Pokud máte jakékoli dotazy nebo potřebujete další pomoc, neváhejte se obrátit na naše free support forum.

See Also