Gantt Chart in ExcelをC#を使用して作成する

プロジェクトのタイムラインを視覚化することは、効果的な計画と追跡に重要です。このブログ投稿では、C#を使用してExcelでガントチャートを作成する方法を学びます。ほんの数行のコードで、動的で視覚的に魅力的なガントチャートの生成を自動化できます。プロジェクト管理ツールを構築している場合でも、内部報告に取り組んでいる場合でも、このガイドではタスクデータを明確でプロフェッショナルなタイムラインに変換する方法を示します。完全にカスタマイズ可能で、Excel、PDF、または画像形式へのエクスポートの準備が整っています。始めましょう!

この記事では、以下のトピックについて説明します:

C# Excel ライブラリを使用してガント チャートを作成する

Aspose.Cells for .NET は、Excel でガント チャートを作成するプロセスを簡素化する強力な Excel ライブラリです。プログラムによる Excel ファイルの操作のための強力な機能を提供します。Aspose.Cells を使用すると、開発者は簡単にチャートやグラフを作成、変更、カスタマイズできます。このライブラリはさまざまな Excel フォーマットをサポートし、先進的な機能を提供しているため、プロジェクト マネージャーや開発者にとって理想的な選択となっています。

Aspose.Cells for .NETは、その統合の容易さと柔軟性から際立っています。ここにいくつかの主な機能があります:

  • 包括的なAPI:幅広いExcel機能にアクセスできます。
  • 高度なカスタマイズ: 特定のニーズに合わせてチャートやグラフを調整します。
  • 高パフォーマンス: スピードを妥協することなく、大規模なデータセットを効率的に処理します。
  • 複数のフォーマットサポート:XLSX、XLS、およびCSVを含むさまざまなExcelフォーマットで作業します。

Aspose.Cells for .NETを始めるための簡単な手順を次に示します:

  1. ライブラリをリリースからダウンロードしてください。
  2. NuGet パッケージ マネージャーを使用して、次のコマンドでインストールします:
    PM> Install-Package Aspose.Cells
    

スタックバー チャートを使用してガント チャートを作成する方法

Aspose.Cells には組み込みのガントチャートタイプがありません。なぜなら、Excel 自体もネイティブのガントチャートタイプを提供していないからです。しかし、Excelでのガントチャートは通常、カスタムフォーマットと組み合わされた積み上げ棒グラフを使用して作成されます。そして、Aspose.Cells はそのアプローチをプログラム的にサポートしています。

Aspose.Cells でできること:

Excelでガントチャートの作成を自動化することができます。

  • タスクデータの設定(タスク名、開始日、期間)。
  • スタックされた棒グラフを追加しています。
  • "開始オフセット"(隠し)用の一つのシリーズと、"持続時間"(表示)用の別のシリーズを使用しています。
  • ガントチャートのようにチャートをフォーマットする。

サンプルガントチャートデータ


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

以下の手順に従って、Aspose.Cells for .NETを使用してC#でExcelにガントチャートを作成します:

  1. 既存のExcelファイルをWorkbookクラスを使って読み込みます。
  2. workbook.Worksheets[0] を使用して最初のワークシートにアクセスします。
  3. ChartType.BarStackedを使用してガントチャートレイアウトをシミュレートするチャートを追加します。
  4. オフセットと持続時間をシリーズとして追加します。
  5. CategoryData プロパティを使用してカテゴリラベルを設定します。
  6. スタイルと軸の設定を行います。
  7. workbook.Save() を使用してワークブックを保存します。

ここに上記のステップを実装したC#コードスニペットがあります:

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

// Excelファイルをロードします。
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];

// ガントチャートを追加してください。
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";

// オフセットと期間を系列として追加してください。
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration

// タスク名をカテゴリとして設定する
chart.NSeries.CategoryData = "A2:A6";

// オフセットバーを非表示にする
chart.NSeries[0].Area.Formatting = FormattingType.None;

// スタイルの期間バー
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;

// 軸設定
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;

// 凡例を非表示にする
chart.ShowLegend = false;

// チャートのサイズを変更 (オプション)
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Save the result
workbook.Save("GanttChartResult.xlsx", SaveFormat.Xlsx);
ExcelでC#を使用してガントチャートを作成する

Gantt チャートを Excel で作成するには、C# を使用します。

ExcelでC#を使用してガントチャートをカスタマイズする

あなたは、Aspose.Cells for .NETの以下のカスタマイズ機能を使用して、ガントチャートを強化することができます:

  • バーの色 期間バーのための単色を設定する:

    chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
    
  • 透明オフセット オフセット(目に見えない)バーを完全に透明にしてください。

    chart.NSeries[0].Area.Formatting = FormattingType.None;
    
  • タスクの順序 Y軸を反転させて、タスクを上から下に表示します:

    chart.CategoryAxis.IsPlotOrderReversed = true;
    
  • データラベル タスクバーごとに直接期間を表示します:

    chart.NSeries[1].DataLabels.ShowValue = true;
    
  • レジェンドコントロール チャートの凡例を削除するか、再配置してください。

    chart.ShowLegend = false;
    // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
    
  • 個別バースタイリング 各タスクにカスタムカラーを設定します。

    var series = chart.NSeries[1];
    series.Points[0].Area.ForegroundColor = Color.Green;
    series.Points[1].Area.ForegroundColor = Color.Red;
    
  • チャートの寸法 チャートのサイズを変更し、位置を再調整してください:

    chart.ChartObject.Width = 700;
    chart.ChartObject.Height = 400;
    
  • エクスポートオプション チャートをExcel、PDF、または画像として保存してください。

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

ここに、上記のカスタマイズのいくつかを実装したC#コードスニペットがあります:

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

// ワークブックとワークシートを初期化する
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";

// サンプルタスクデータと日付
DateTime projectStart = new DateTime(2025, 4, 1);

// ヘッダー
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

    // オフセット: = 開始日 - プロジェクト開始日
    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();

// チャートを追加する
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";

// シリーズを追加: オフセット (不可視)、継続時間 (可視)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration

// カテゴリラベルを設定する
chart.NSeries.CategoryData = "A2:A6";

// オフセットシリーズを透明にする
chart.NSeries[0].Area.Formatting = FormattingType.None;

// タスクバーごとに異なる色を付けてください。
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
}

// データラベルを表示する
chart.NSeries[1].DataLabels.ShowValue = true;


// 軸設定
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;

// レジェンドを削除する
chart.ShowLegend = false;

// チャートのサイズを変更する
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Excelにエクスポート
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);
ExcelでC#を使用してGanttチャートをカスタマイズする

ExcelでC#を使用してガントチャートをカスタマイズする

無料ライセンスを取得する

Aspose製品の探索に興味がありますか? ライセンスページを訪れて、無料の一時ライセンスを取得してください。始めるのは簡単で、プロジェクトのためにAspose.Cellsの完全な潜在能力を解放できます!

ガントチャート エクセル: 無料リソース

ここで止まらないで!Aspose.Cells に関する理解をさらに深めるために、追加のリソースを探索してください。これらのリソースは、Excel 自動化を習得し、スキルを強化するのに役立ちます。

結論

このブログ記事では、C#を使用してExcelでガントチャートを作成する方法を探りました。Aspose.Cells for .NETは、その強力な機能と柔軟性を使って、このプロセスを簡素化します。プロジェクト管理の能力を向上させるために、Aspose.Cells for .NETについてさらに探求することをお勧めします。

ご質問がある場合やさらなるサポートが必要な場合は、ぜひ私たちの free support forum にお問い合わせください。

See Also