
Wizualizacja harmonogramów projektów jest ważna dla efektywnego planowania i śledzenia. W tym wpisie na blogu dowiesz się, jak stworzyć wykres Gantta w Excelu za pomocą C#. Za pomocą zaledwie kilku linii kodu możesz zautomatyzować generowanie dynamicznych, estetycznych wykresów Gantta. Niezależnie od tego, czy budujesz narzędzie do zarządzania projektami, czy pracujesz nad raportowaniem wewnętrznym, ten przewodnik pokaże ci, jak przekształcić dane o zadaniach w jasny i profesjonalny harmonogram - w pełni konfigurowalny i gotowy do eksportu do Excel, PDF lub formatów obrazów. Zacznijmy!
Artykuł ten obejmuje następujące tematy:
- Biblioteka C# Excel do tworzenia wykresów Gantta
- Jak zbudować wykres Gantta za pomocą wykresów słupkowych skumulowanych
- Create a Gantt Chart in Excel using C#
- Dostosuj wykres Gantta w Excelu używając C#
- Darmowe zasoby
C# Biblioteka Excel do twórczenia wykresów Gantta
Aspose.Cells for .NET to potężna biblioteka Excela, która upraszcza proces tworzenia wykresów Gantta w Excelu. Oferuje solidne funkcje do programowego manipulowania plikami Excel. Dzięki Aspose.Cells programiści mogą łatwo tworzyć, modyfikować i dostosowywać wykresy i grafiki. Ta biblioteka obsługuje różne formaty Excela i oferuje zaawansowane funkcjonalności, co czyni ją idealnym wyborem dla menedżerów projektów i programistów.
Aspose.Cells for .NET wyróżnia się łatwością integracji i elastycznością. Oto kilka kluczowych funkcji:
- Kompleksowe API: Uzyskaj dostęp do szerokiego zakresu funkcji Excela.
- Zaawansowana personalizacja: Dostosuj wykresy i grafiki, aby spełniały konkretne potrzeby.
- Wysoka wydajność: Efektywnie obsługuj duże zbiory danych bez kompromisów w zakresie prędkości.
- Wsparcie dla wielu formatów: Pracuj z różnymi formatami Excela, w tym XLSX, XLS i CSV.
Postępuj zgodnie z tymi prostymi krokami, aby rozpocząć korzystanie z Aspose.Cells do .NET:
- Pobierz bibliotekę z releases.
- Zainstaluj to za pomocą Menedżera pakietów NuGet, używając następującego polecenia:
PM> Install-Package Aspose.Cells
Jak zbudować wykres Gantta przy użyciu wykresów słupkowych skumulowanych
Aspose.Cells nie ma wbudowanego typu wykresu Gantta, ponieważ Excel sam w sobie również nie oferuje natywnego typu wykresu Gantta. Jednak wykresy Gantta w Excelu są zazwyczaj tworzone za pomocą skumulowanych wykresów słupkowych połączonych z niestandardowym formatowaniem — a Aspose.Cells wspiera to podejście programowo.
Co możesz zrobić z Aspose.Cells:
Możesz zautomatyzować tworzenie wykresu Gantta w Excelu, wykonując
- Ustawianie danych zadania (nazwa zadania, data rozpoczęcia, czas trwania).
- Dodawanie wykresu słupkowego skumulowanego.
- Używając jednej serii dla
przesunięcia startowego” (ukryte) i drugiej dla
czas trwania” (widoczne). - Formatowanie wykresu, aby przypominał wykres Gantta.
Przykładowe dane wykresu Gantta
| 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 |
Utwórz diagram Gantta w Excelu przy użyciu C#
Postępuj zgodnie z tymi krokami, aby stworzyć wykres Gantta w Excelu, używając C# z Aspose.Cells for .NET:
- Załaduj istniejący plik Excel przy użyciu klasy
Workbook
. - Uzyskaj dostęp do pierwszego arkusza roboczego za pomocą
workbook.Worksheets[0]
. - Dodaj wykres używając
ChartType.BarStacked
, aby zasymulować układ wykresu Gantta. - Dodaj przesunięcie i czas trwania jako serie.
- Ustaw etykiety kategorii za pomocą właściwości
CategoryData
. - Ustaw style i ustawienia osi.
- Zapisz zeszyt roboczy używając
workbook.Save()
.
Oto fragment kodu C#, który implementuje powyższe kroki:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Załaduj plik Excel
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// Dodaj wykres Gantta
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";
// Dodaj przesunięcie i czas trwania jako serię
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Ustal nazwy zadań jako kategorie
chart.NSeries.CategoryData = "A2:A6";
// Uczyń pasek offsetowy niewidocznym
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Stylizuj paski czasu
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;
// Ustawienia osi
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
// Ukryj legendę
chart.ShowLegend = false;
// Zmień rozmiar wykresu (opcjonalnie)
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Save the result
workbook.Save("GanttChartResult.xlsx", SaveFormat.Xlsx);

Create a Gantt Chart in Excel using C#
Dostosowywanie wykresu Gantta w Excelu za pomocą C#
Możesz ulepszyć swój wykres Gantta, korzystając z następujących funkcji dostosowywania w Aspose.Cells for .NET:
Bar Colors Ustaw jednolity kolor dla pasków czasu:
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
Przezroczyste przesunięcia Zrób całkowicie przezroczyste niewidoczne linie przesuwnika.
chart.NSeries[0].Area.Formatting = FormattingType.None;
Zamówienie zadania Odwróć oś Y, aby pokazać zadania od góry do dołu:
chart.CategoryAxis.IsPlotOrderReversed = true;
Etykiety danych Pokaż czas trwania bezpośrednio na każdym pasku zadań:
chart.NSeries[1].DataLabels.ShowValue = true;
Kontrola Legendy Usuń lub przesuń legendę wykresu.
chart.ShowLegend = false; // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
Stylizacja poszczególnych elementów baru Ustaw niestandardowe kolory dla każdej czynności.
var series = chart.NSeries[1]; series.Points[0].Area.ForegroundColor = Color.Green; series.Points[1].Area.ForegroundColor = Color.Red;
Wymiary wykresu Zmień rozmiar i przesuń wykres:
chart.ChartObject.Width = 700; chart.ChartObject.Height = 400;
Opcje eksportu Zapisz wykres jako Excel, PDF lub obraz.
workbook.Save("GanttChart.xlsx"); workbook.Save("GanttChart.pdf", SaveFormat.Pdf); chart.ToImage("chart.png", ImageFormat.Png);
Oto fragment kodu C#, który implementuje kilka z powyżej podanych dostosowań:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Zainicjuj skoroszyt i arkusz roboczy
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";
// Przykładowe dane zadania z datami
DateTime projectStart = new DateTime(2025, 4, 1);
// Nagłówki
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();
// Dodaj wykres
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";
// Dodaj serię: Przesunięcie (niewidoczne), Czas trwania (widoczne)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Ustaw etykiety kategorii
chart.NSeries.CategoryData = "A2:A6";
// Zrób serię Offset przezroczystą
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Pok koloruj każdy pasek zadań inaczej
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
}
// Pokaż etykiety danych
chart.NSeries[1].DataLabels.ShowValue = true;
// Ustawienia osi
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;
// Usuń legendę
chart.ShowLegend = false;
// Zmień rozmiar wykresu
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Eksportuj do Excela
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);

Dostosuj wykres Gantta w Excelu przy użyciu C#
Zdobądź darmową licencję
Zainteresowany eksploracją produktów Aspose? Odwiedź stronę license page, aby uzyskać darmową tymczasową licencję. To łatwe, aby zacząć i odblokować pełny potencjał Aspose.Cells dla swoich projektów!
Gantt Chart Excel: Darmowe zasoby
Nie zatrzymuj się tutaj! Eksploruj dodatkowe zasoby, aby jeszcze bardziej zwiększyć swoje zrozumienie Aspose.Cells. Te zasoby pomogą Ci opanować automatyzację Excela i wzmocnić Twoje umiejętności.
Wnioski
W tym wpisie na blogu zbadaliśmy, jak stworzyć wykres Gantta w Excelu przy użyciu C#. Aspose.Cells for .NET upraszcza ten proces dzięki swoim potężnym funkcjom i elastyczności. Zachęcamy do odkrywania więcej informacji o Aspose.Cells for .NET, aby wzbogacić swoje możliwości zarządzania projektami.
Jeśli masz jakiekolwiek pytania lub potrzebujesz dalszej pomocy, nie wahaj się skontaktować z nami na naszym free support forum.