グラフは、データを簡潔に表示するための優れたツールです。また、データを視覚的に表現しているため、大量のデータを消費しやすくなっています。グラフは、1か月の予算比較や製品の採用率などのデータを表示する必要がある状況で役立つ場合があります。これに照らして、この記事では、C++を使用してExcelファイルでグラフを作成する方法を説明します。
- Excelチャートを作成するためのC++API
- C++を使用してExcelで折れ線グラフを作成する
- C++を使用してExcelでピラミッドチャートを作成する
- 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ファイルで折れ線グラフを作成する手順です。
- まず、IWorkbookクラスのインスタンスを作成します。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、グラフを追加するワークシートを取得します。
- グラフのデータを挿入します。
- IWorksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType type, Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn)メソッド。
- IWorksheet->GetICharts()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、チャートとそのインデックスにアクセスします。
- IChart->GetNISeries()->Add(intrusive_ptrAspose::Cells::Systems::String area, bool isVertical)メソッド。
- 最後に、IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
以下は、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ファイルでピラミッドチャートを作成する手順です。
- まず、IWorkbookクラスのインスタンスを作成します。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、グラフを追加するワークシートを取得します。
- グラフのデータを挿入します。
- IWorksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType type, Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn)メソッド。
- IWorksheet->GetICharts()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、そのインデックスでチャートにアクセスします。
- IChart->GetNISeries()->Add(intrusive_ptrAspose::Cells::Systems::String area, bool isVertical)メソッド。
- 最後に、IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
以下は、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ファイルでバブルチャートを作成する手順です。
- まず、IWorkbookクラスのインスタンスを作成します。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、グラフを追加するワークシートを取得します。
- グラフのデータを挿入します。
- IWorksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType type, Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn)メソッド。
- IWorksheet->GetICharts()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、そのインデックスでチャートにアクセスします。
- IChart->GetNISeries()->Add(intrusive_ptrAspose::Cells::Systems::String area, bool isVertical)、IChart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(intrusive_ptrAspose::Cells::Systems::String value)、IChart->GetNISeries()->GetObjectByIndex(0)->SetXValues(intrusive_ptrAspose::Cells::Systems::String value)、IChart->GetNISeries()->GetObjectByIndex(0)->SetValues(intrusive_ptrAspose::Cells::Systems::String value)メソッド。
- 最後に、IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
以下は、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の詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。