ExcelチャートC++を作成する

グラフは、データを簡潔に表示するための優れたツールです。また、データを視覚的に表現しているため、大量のデータを消費しやすくなっています。グラフは、1か月の予算比較や製品の採用率などのデータを表示する必要がある状況で役立つ場合があります。これに照らして、この記事では、C++を使用してExcelファイルでグラフを作成する方法を説明します。

Excelチャートを作成するためのC++API

Aspose.Cells for C++はネイティブC++ライブラリであり、Microsoft Excelをインストールしなくても、Excelファイルを作成、読み取り、変更できます。 APIは、Excelファイルでのグラフの作成もサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.Cells.Cpp

C++を使用してExcelで折れ線グラフを作成する

折れ線グラフを作成するには、グラフを追加するときにChartType \Line列挙値を使用します。以下は、Excelファイルで折れ線グラフを作成する手順です。

以下は、C++を使用してExcelで折れ線グラフを作成するためのサンプルコードです。

// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");

// 出力Excelファイルのパス
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));

// 新しいブックを作成する
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// デフォルトで作成される最初のワークシートを取得する
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// セルへのサンプル値の追加
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);

// ワークシートにグラフを追加する
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);

// 新しく追加されたチャートのインスタンスへのアクセス
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// 「A1」セルから「B3」までの範囲のグラフにSeriesCollection(グラフデータソース)を追加する
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Excelファイルを保存する
workbook->Save(outputChartTypeLine);
折れ線グラフ

サンプルコードによって生成された折れ線グラフ

C++を使用してExcelでピラミッドチャートを作成する

ピラミッドチャートを作成するには、ChartType \ Pyramid列挙値を使用して、チャートを追加するときにチャートタイプを指定します。以下は、Excelファイルでピラミッドチャートを作成する手順です。

以下は、C++を使用してExcelでピラミッドチャートを作成するためのサンプルコードです。

// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");

// 出力Excelファイルのパス
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));

// 新しいブックを作成する
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// デフォルトで作成される最初のワークシートを取得する
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// セルへのサンプル値の追加
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);

// ワークシートにグラフを追加する
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);

// 新しく追加されたチャートのインスタンスへのアクセス
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// 「A1」セルから「B3」までの範囲のグラフにSeriesCollection(グラフデータソース)を追加する
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Excelファイルを保存する
workbook->Save(outputChartTypePyramid);
ピラミッドチャート

サンプルコードによって生成されたピラミッドチャート

C++を使用してExcelでバブルチャートを作成する

バブルチャートを作成するには、ChartType \ Bubble列挙値をIWorksheet->GetICharts()->Add()メソッドに渡します。以下は、Excelファイルでバブルチャートを作成する手順です。

以下は、C++を使用してExcelでバブルチャートを作成するためのサンプルコードです。

// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");

// 出力Excelファイルのパス
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));

// 新しいブックを作成する
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// デフォルトで作成される最初のワークシートを取得する
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// チャートのシリーズのデータを入力します
// Y値
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Y値"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// バブルサイズ
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("バブルサイズ"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// X値
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("X値"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);

// 最初の列幅を設定します
worksheet->GetICells()->SetColumnWidth(0, 12);

// ワークシートにグラフを追加する
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);

// 新しく追加されたチャートのインスタンスへのアクセス
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// B1からD1までの範囲のグラフにSeriesCollection(グラフデータソース)を追加する
chart->GetNISeries()->Add(new String("B1:D1"), true);

// バブルサイズを設定する
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));

// X軸の値を設定する
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));

// Y軸の値を設定する
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));

// Excelファイルを保存する
workbook->Save(outputChartTypeBubble);
バブルチャート

サンプルコードによって生成されたバブルチャート

追加のサポートされているチャート

上記のグラフ以外に、Aspose.Cells forC++は多くの追加のグラフタイプをサポートしています。 ChartType列挙値を表示すると、サポートされているグラフの完全なリストを表示できます。

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

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C++を使用してExcelスプレッドシートでグラフを作成する方法を学習しました。具体的には、C++ APIのAspose.Cellsを使用して、折れ線グラフ、ピラミッドグラフ、およびバブルグラフを作成する方法を見てきました。さらに、APIは、Excelファイルで作成できる他の多数のグラフをサポートしていることを確認しました。チャートに加えて、APIはExcelファイルを操作するための多くの追加機能を提供します。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目