
Visualisering av projektlinjer är viktigt för effektiv planering och spårning. I det här blogginlägget kommer du att lära dig hur du skapar ett Gantt-schema i Excel med C#. Med bara några rader kod kan du automatisera generationen av dynamiska, visuellt tilltalande Gantt-scheman. Oavsett om du bygger ett projektledningsverktyg eller arbetar med intern rapportering, kommer den här guiden att visa dig hur du omvandlar uppgiftsdata till en tydlig och professionell tidslinje - helt anpassningsbar och redo för export till Excel, PDF eller bildformat. Låt oss börja!
Denna artikel täcker följande ämnen:
- C# Excel-bibliotek för att skapa Gantt-diagram
- Hur man bygger ett Gantt-diagram med staplade diagram
- Create a Gantt Chart in Excel using C#
- Anpassa Gantt-diagrammet i Excel med C#
- Gratis resurser
C# Excel-bibliotek för att skapa Gantt-diagram
Aspose.Cells för .NET är ett kraftfullt Excel-bibliotek som förenklar processen att skapa Gantt-diagram i Excel. Det erbjuder robusta funktioner för att programvarumässigt manipulera Excel-filer. Med Aspose.Cells kan utvecklare enkelt skapa, ändra och anpassa diagram och grafer. Detta bibliotek stöder olika Excel-format och erbjuder avancerade funktioner, vilket gör det till ett utmärkt val för projektledare och utvecklare.
Aspose.Cells för .NET är utmärkande på grund av sin enkla integration och flexibilitet. Här är några viktiga funktioner:
- Omfattande API: Få tillgång till ett brett utbud av Excel-funktioner.
- Avancerad anpassning: Skräddarsy diagram och grafer för att möta specifika behov.
- Hög prestanda: Effektivt hantera stora datamängder utan att kompromissa med hastigheten.
- Flera formatstöd: Arbeta med olika Excel-format, inklusive XLSX, XLS och CSV.
Följ dessa enkla steg för att komma igång med Aspose.Cells för .NET:
- Ladda ner biblioteket från releases.
- Installera det via NuGet Package Manager med följande kommando:
PM> Install-Package Aspose.Cells
Hur man bygger ett Gantt-diagram med staplade stapeldiagram
Aspose.Cells har ingen inbyggd Gantt-diagramtyp eftersom Excel i sig inte erbjuder en inhemsk Gantt-diagramtyp heller. Gantt-diagram i Excel skapas vanligtvis med staplade stapeldiagram kombinerat med anpassad formatering — och Aspose.Cells stöder det tillvägagångssättet programmässigt.
Vad du kan göra med Aspose.Cells:
Du kan automatisera skapandet av ett Gantt-diagram i Excel genom att
- Inställning av uppgiftsdata (uppgiftsnamn, startdatum, varaktighet).
- Lägger till ett staplat stapeldiagram.
- Använda en serie för “start offset” (dold) och en annan för “duration” (synlig).
- Formatera diagrammet så att det liknar ett Gantt-diagram.
Exempel på Gantt-diagramdata
| 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 |
Skapa ett Gantt-schema i Excel med C#
Följ dessa steg för att skapa ett Gantt-diagram i Excel med C# med Aspose.Cells för .NET:
- Ladda en befintlig Excel-fil med hjälp av
Workbook
-klassen. - Åtkomst till det första kalkylbladet med
workbook.Worksheets[0]
. - Lägg till ett diagram med
ChartType.BarStacked
för att simulera ett Gantt-diagramupplägg. - Lägg till förskjutning och varaktighet som serier.
- Ställ in kategoribeteckningar med egenskapen
CategoryData
. - Ställ in stilar och axelinställningar.
- Spara arbetsboken med
workbook.Save()
.
Här är en C# kodsnutt som implementerar ovanstående steg:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Ladda Excel-filen
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// Lägg till Gantt-diagram
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";
// Lägg till förskjutning och varaktighet som en serie
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Ange uppgiftsnamn som kategorier
chart.NSeries.CategoryData = "A2:A6";
// Gör förskjutna staplar osynliga
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Styla varaktighetsstänger
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;
// Axelinställningar
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
// Dölj legenden
chart.ShowLegend = false;
// Ändra storlek på diagram (valfritt)
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#
Anpassa Gantt-diagrammet i Excel med C#
Du kan förbättra din Gantt-diagram med följande anpassningsfunktioner i Aspose.Cells för .NET:
Bar Colors Ställ in en enhetlig färg för varaktighetsfält:
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
Transparent Offsets Gör de osynliga staplarna helt transparenta.
chart.NSeries[0].Area.Formatting = FormattingType.None;
Task Order Vänd Y-axeln för att visa uppgifter från toppen till botten:
chart.CategoryAxis.IsPlotOrderReversed = true;
Data Labels Visa varaktighet direkt på varje aktivitetsfält:
chart.NSeries[1].DataLabels.ShowValue = true;
Legend Control Ta bort eller flytta diagramlegenden.
chart.ShowLegend = false; // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
Individuell Bar Styling Ange anpassade färger för varje uppgift.
var series = chart.NSeries[1]; series.Points[0].Area.ForegroundColor = Color.Green; series.Points[1].Area.ForegroundColor = Color.Red;
Diagramdimensioner Ändra storlek och omplacera diagrammet:
chart.ChartObject.Width = 700; chart.ChartObject.Height = 400;
Exportalternativеr Spara diagrammet som Excel, PDF eller bild.
workbook.Save("GanttChart.xlsx"); workbook.Save("GanttChart.pdf", SaveFormat.Pdf); chart.ToImage("chart.png", ImageFormat.Png);
Här är en C# kodsnutt som implementerar några av de ovan nämnda anpassningarna:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Initiera arbetsbok och arbetsark
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";
// Sample Task Data with Dates
DateTime projectStart = new DateTime(2025, 4, 1);
// Headers
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();
// Add a chart
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";
// Lägg till serie: Offset (osynlig), Varaktighet (synlig)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Ställ in kategorimarkeringar
chart.NSeries.CategoryData = "A2:A6";
// Gör Offset-serien genomskinlig
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Färga varje uppgiftstavla olika
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
}
// Visa datalabeler
chart.NSeries[1].DataLabels.ShowValue = true;
// Axelinställningar
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;
// Ta bort legendan
chart.ShowLegend = false;
// Ändra storlek på diagrammet
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Exportera till Excel
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);

Anpassa Gantt-schema i Excel med C#
Få en gratis licens
Intresserad av att utforska Aspose-produkter? Besök license page för att få en gratis tillfällig licens. Det är enkelt att komma igång och låsa upp hela potentialen av Aspose.Cells för dina projekt!
Gantt-diagram Excel: Gratis resurser
Sluta inte här! Utforska ytterligare resurser för att fördjupa din förståelse av Aspose.Cells. Dessa resurser kommer att hjälpa dig att bemästra Excel-automatisering och stärka dina färdigheter.
Slutsats
I det här blogginlägget utforskade vi hur man skapar ett Gantt-diagram i Excel med C#. Aspose.Cells för .NET förenklar denna process med sina kraftfulla funktioner och flexibilitet. Vi uppmuntrar dig att utforska mer om Aspose.Cells för .NET för att förstärka dina projektledningskapabiliteter.
Om du har några frågor eller behöver mer hjälp, tveka inte att kontakta oss på vårt free support forum.