C++でガントチャートを作成する方法
ガントチャートとは何ですか
ガントチャートは、プロジェクトスケジュールを示す棒グラフの一種です。各作業やアクティビティの開始・終了日を示し、その長さは期間に対応しています。タスク間の依存関係も示し、プロジェクトマネージャーが作業の順序を視覚化できるようにします。広くプロジェクト管理に利用され、計画・スケジューリング・進行状況の追跡に役立ちます。
Excelでガントチャートを作成する方法
Excelでガントチャートを作成するには、次の手順に従います:
-
ガントチャート用のデータを追加します。
-
データを選択し、「挿入」→「グラフ」→「積み上げ縦棒グラフ」→「積み上げ横棒グラフ」を選びます。例として、B1:B7を選択し、「積み上げ縦棒」グラフを挿入します。
-
グラフを選択し、「データの追加」を選択します。次に、系列名と系列値を以下のように設定します。
-
グラフを選択し、横軸(カテゴリ)軸ラベルの編集を行います。
-
Y軸の軸の書式設定で、逆順にカテゴリを選択します。
-
青い系列を選択し、「塗りつぶし→塗りつぶしなし」を設定します。
-
X軸についても軸の書式設定を行い、最小値と最大値を設定します(例:2019年1月5日:43470、2019年1月30日:43494)。
-
グラフにデータラベルを追加すると、ガントチャートが完成します。
Aspose.Cellsでガントチャートを追加する方法
以下のサンプルコードをご覧ください。サンプルExcelファイル(sample.xlsx)を読み込み、サンプルデータが含まれています。その後、初期データに基づいた積み上げ棒グラフを作成し、関連する設定を行います。最後に、Excelファイル(結果のxlsx)として保存します。以下のスクリーンショットは、Aspose.Cellsが作成したガントチャートです。
サンプルコード
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Create an instance of Workbook
Workbook workbook(u"sample.xlsx");
// Access the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Create BarStacked Chart
int32_t chartIndex = worksheet.GetCharts().Add(ChartType::BarStacked, 5, 6, 20, 15);
// Retrieve the Chart object
Chart chart = worksheet.GetCharts().Get(chartIndex);
// Set the chart title name
chart.GetTitle().SetText(u"Gantt Chart");
// Set the chart title visibility
chart.GetTitle().SetIsVisible(true);
// Set data range
chart.SetChartDataRange(u"B1:B6", true);
// Add series data range
chart.GetNSeries().Add(u"C2:C6", true);
// No fill for one series
chart.GetNSeries().Get(0).GetArea().GetFillFormat().SetFillType(FillType::None);
// Set the Horizontal(Category) Axis
chart.GetNSeries().SetCategoryData(u"A2:A6");
// Reverse the Horizontal(Category) Axis
chart.GetCategoryAxis().SetIsPlotOrderReversed(true);
// Set the value axis's MinValue and MaxValue
chart.GetValueAxis().SetMinValue(worksheet.GetCells().Get(u"B2").GetValue());
chart.GetValueAxis().SetMaxValue(worksheet.GetCells().Get(u"D6").GetValue());
// Set the PlotArea with no fill
chart.GetPlotArea().GetArea().GetFillFormat().SetFillType(FillType::None);
// Show the DataLabels
chart.GetNSeries().Get(1).GetDataLabels().SetShowValue(true);
// Disable the Legend
chart.SetShowLegend(false);
// Save the result
workbook.Save(u"result.xlsx");
Aspose::Cells::Cleanup();
}