パワーポイントpptC#でチャートを作成する

グラフは、PowerPointプレゼンテーション内のデータを要約して視覚的に表すために使用されます。したがって、PowerPointには、データを視覚化するためのさまざまな種類のグラフが用意されています。中でも、最も一般的に使用されるグラフの種類には、円グラフ、折れ線グラフ、棒グラフ、ヒストグラム、株価グラフなどがあります。この記事では、C#を使用してPowerPointプレゼンテーションでこれらのグラフを作成する方法を学習します。

PowerPointでグラフを作成するためのC#API

Aspose.Slides for .NETは、.NETアプリケーション内からPowerPointプレゼンテーションを作成および操作できるC#クラスライブラリです。さらに、APIを使用すると、チャートを作成してプレゼンテーションにシームレスに追加できます。 Aspose.Slides for .NETは、DLLとしてダウンロードするか、NuGetからインストールできます。

PM> Install-Package Aspose.Slides

C#を使用してPowerPointPPTで縦棒グラフを作成する

このセクションでは、縦棒グラフを作成し、カテゴリと系列を追加してそのグラフにデータを入力する方法を学習します。この操作を実行する手順は次のとおりです。

  • まず、Presentationクラスのインスタンスを作成します。
  • ISlideオブジェクトでスライドの参照を取得します。
  • デフォルトデータを使用してClusteredColumnチャートを追加し、IChartオブジェクトでその参照を取得します。
  • IChart.ChartTitle.AddTextFrameForOverriding(String)メソッドを使用してグラフのタイトルを設定し、そのプロパティを設定します。
  • チャートデータワークブックにアクセスして、IChartDataWorkbookオブジェクトにアクセスします。
  • IChart.ChartData.Series.Clear()メソッドとIChart.ChartData.Categories.Clear()メソッドをそれぞれ使用して、チャートデータからすべてのデフォルトの系列とカテゴリをクリアします。
  • 新しいシリーズとカテゴリを追加します。
  • 各チャートシリーズをIChartSeriesオブジェクトにアクセスし、それにデータポイントを追加します。
  • チャートシリーズの塗りつぶし色を追加し、ラベルを設定します。
  • 最後に、Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

デモ用に、次のコードサンプルは、C#を使用してPowerPointプレゼンテーションで縦棒グラフを作成する方法を示しています。

// PPTXファイルを表すPresentationクラスをインスタンス化します
Presentation pres = new Presentation();

// 最初のスライドにアクセスする
ISlide sld = pres.Slides[0];

// デフォルトデータでチャートを追加
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);

// チャートタイトルの設定
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// 最初のシリーズをShowValuesに設定します
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// チャートデータシートのインデックスを設定する
int defaultWorksheetIndex = 0;

// チャートデータワークシートの取得
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// デフォルトで生成されたシリーズとカテゴリを削除する
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;

// 新しいシリーズを追加する
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);

// 新しいカテゴリの追加
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));

// 最初のチャートシリーズを取る
IChartSeries series = chart.ChartData.Series[0];

// 系列データを入力しています
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// シリーズの塗りつぶし色の設定
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = System.Drawing.Color.Blue;


// 2番目のチャートシリーズを取る
series = chart.ChartData.Series[1];

// 系列データを入力しています
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));

// シリーズの塗りつぶし色の設定
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Orange;

// 最初のラベルにはカテゴリ名が表示されます
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;

lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;

// 3番目のラベルの値を表示
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";

// チャートでプレゼンテーションを保存
pres.Save("column-chart.pptx", SaveFormat.Pptx);

以下は、結果の縦棒グラフのスクリーンショットです。

C#のパワーポイントで縦棒グラフを作成する

C#を使用してPowerPointPPTで散布図を作成する

以下は、C#を使用してPowerPointプレゼンテーションで散布図を作成する手順です。

  • Presentationクラスを使用して新しいプレゼンテーションを作成します。
  • ISlideオブジェクトのスライドの参照を取得します。
  • デフォルトデータを使用してScatterWithSmoothLinesチャートタイプを追加し、IChartオブジェクトでその参照を取得します。
  • チャートデータワークブックにアクセスしてIChartDataWorkbookオブジェクトにアクセスし、デフォルトのシリーズをクリアします。
  • チャートデータに新しいシリーズを追加します。
  • 各シリーズにアクセスしてIChartSeriesオブジェクトにアクセスし、データポイントをシリーズに追加します。
  • IChartSeries.Markerプロパティを使用して、シリーズのマーカーを設定します。
  • Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、C#を使用してPowerPointプレゼンテーションで散布図を作成する方法を示しています。

// PPTXファイルを表すPresentationクラスをインスタンス化します
Presentation pres = new Presentation();

// 最初のスライドにアクセスする
ISlide sld = pres.Slides[0];

// デフォルトデータでチャートを追加
IChart chart = sld.Shapes.AddChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);

// デフォルトのチャートデータワークシートインデックスの取得
int defaultWorksheetIndex = 0;

// チャートデータワークシートの取得
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// デモシリーズを削除
chart.ChartData.Series.Clear();

// 新しいシリーズを追加
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.Type);

// 最初のチャートシリーズを取る
IChartSeries series = chart.ChartData.Series[0];

// そこに新しいポイント(1:3)を追加します。
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 1), fact.GetCell(defaultWorksheetIndex, 2, 2, 3));

// 新しいポイントを追加(2:10)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 2), fact.GetCell(defaultWorksheetIndex, 3, 2, 10));

// シリーズの種類を編集する
series.Type = ChartType.ScatterWithStraightLinesAndMarkers;

// チャートシリーズマーカーの変更
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Star;

// 2番目のチャートシリーズを取る
series = chart.ChartData.Series[1];

// そこに新しいポイント(5:2)を追加します。
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 5), fact.GetCell(defaultWorksheetIndex, 2, 4, 2));

// 新しいポイントを追加(3:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 3, 3), fact.GetCell(defaultWorksheetIndex, 3, 4, 1));

// 新しいポイントを追加(2:2)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 3, 2), fact.GetCell(defaultWorksheetIndex, 4, 4, 2));

// 新しいポイントを追加(5:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 5, 3, 5), fact.GetCell(defaultWorksheetIndex, 5, 4, 1));

// チャートシリーズマーカーの変更
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Circle;

// チャートでプレゼンテーションを保存
pres.Save("scattered-chart.pptx", SaveFormat.Pptx);

次のスクリーンショットは、結果の散布図を示しています。

C#のパワーポイントで散在するチャートを作成する

C#を使用してPowerPointPPTで円グラフを作成する

以下は、C#を使用してPowerPointプレゼンテーションで円グラフを作成する手順です。

  • Presentationクラスを使用して新しいプレゼンテーションを作成します。
  • ISlideオブジェクトのスライドの参照を取得します。
  • デフォルトデータを使用して円グラフタイプを追加し、IChartオブジェクトでその参照を取得します。
  • IChart.ChartTitle.AddTextFrameForOverriding(String)メソッドを使用してグラフのタイトルを設定し、そのプロパティを設定します。
  • 値の可視性を設定します。
  • IChart.ChartData.Series.Clear()メソッドとIChart.ChartData.Categories.Clear()メソッドをそれぞれ使用して、デフォルトのシリーズとカテゴリをクリアします。
  • チャートデータワークブックにアクセスして、IChartDataWorkbookオブジェクトにアクセスします。
  • IChart.ChartData.Categoriesコレクションのグラフデータに新しいカテゴリを追加します。
  • IChart.ChartData.Seriesコレクションのチャートデータに新しいシリーズを追加します。
  • 各シリーズをIChartSeriesオブジェクトに取得し、データポイントをシリーズに追加します。
  • 各データポイントにIChartDataPointオブジェクトにアクセスし、そのフォーマットを設定します。
  • IDataLabelオブジェクトを使用してデータポイントのデータラベルにアクセスし、それらのフォーマットを設定します。
  • 引出線と回転角を設定します。
  • Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、C#を使用してPowerPointプレゼンテーションで円グラフを作成する方法を示しています。

// PPTXファイルを表すPresentationクラスをインスタンス化します
Presentation presentation = new Presentation();

// 最初のスライドにアクセスする
ISlide slides = presentation.Slides[0];

// デフォルトデータでチャートを追加
IChart chart = slides.Shapes.AddChart(ChartType.Pie, 100, 100, 400, 400);

// チャートタイトルの設定
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// 最初のシリーズを値を表示するように設定します
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// チャートデータシートのインデックスを設定する
int defaultWorksheetIndex = 0;

// チャートデータワークシートの取得
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// デフォルトで生成されたシリーズとカテゴリを削除する
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();

// 新しいカテゴリの追加
chart.ChartData.Categories.Add(fact.GetCell(0, 1, 0, "First Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 2, 0, "2nd Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 3, 0, "3rd Qtr"));

// 新しいシリーズを追加する
IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1, "Series 1"), chart.Type);

// 系列データを入力しています
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// 新しいバージョンでは機能しません
// 新しいポイントの追加とセクターの色の設定
// series.IsColorVaried = true;
chart.ChartData.SeriesGroups[0].IsColorVaried = true;

IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = Color.Orange;
// セクター境界の設定
point.Format.Line.FillFormat.FillType = FillType.Solid;
point.Format.Line.FillFormat.SolidFillColor.Color = Color.Gray;
point.Format.Line.Width = 3.0;
//point.Format.Line.Style = LineStyle.ThinThick;
//point.Format.Line.DashStyle = LineDashStyle.DashDot;

IChartDataPoint point1 = series.DataPoints[1];
point1.Format.Fill.FillType = FillType.Solid;
point1.Format.Fill.SolidFillColor.Color = Color.BlueViolet;

// セクター境界の設定
point1.Format.Line.FillFormat.FillType = FillType.Solid;
point1.Format.Line.FillFormat.SolidFillColor.Color = Color.Blue;
point1.Format.Line.Width = 3.0;
//point1.Format.Line.Style = LineStyle.Single;
//point1.Format.Line.DashStyle = LineDashStyle.LargeDashDot;

IChartDataPoint point2 = series.DataPoints[2];
point2.Format.Fill.FillType = FillType.Solid;
point2.Format.Fill.SolidFillColor.Color = Color.YellowGreen;

// セクター境界の設定
point2.Format.Line.FillFormat.FillType = FillType.Solid;
point2.Format.Line.FillFormat.SolidFillColor.Color = Color.Red;
point2.Format.Line.Width = 2.0;
//point2.Format.Line.Style = LineStyle.ThinThin;
//point2.Format.Line.DashStyle = LineDashStyle.LargeDashDotDot;

// 新しいシリーズのカテゴリごとにカスタムラベルを作成する
IDataLabel lbl1 = series.DataPoints[0].Label;

// lbl.ShowCategoryName = true;
lbl1.DataLabelFormat.ShowValue = true;

IDataLabel lbl2 = series.DataPoints[1].Label;
lbl2.DataLabelFormat.ShowValue = true;
lbl2.DataLabelFormat.ShowLegendKey = true;
lbl2.DataLabelFormat.ShowPercentage = true;

IDataLabel lbl3 = series.DataPoints[2].Label;
lbl3.DataLabelFormat.ShowSeriesName = true;
lbl3.DataLabelFormat.ShowPercentage = true;

// チャートの引出線の表示
//series.Labels.DefaultDataLabelFormat.ShowLeaderLines = true;

// 円グラフセクターの回転角の設定
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;

// チャートでプレゼンテーションを保存
presentation.Save("pie-chart.pptx", SaveFormat.Pptx);

以下は、生成された円グラフのスクリーンショットです。

C#のパワーポイントで円グラフを作成する

C#を使用してPowerPoint PPTXにヒストグラムチャートを追加する

以下は、Aspose.Slides for .NETを使用してPowerPointプレゼンテーションでヒストグラムチャートを作成する手順です。

  • Presentationクラスのインスタンスを作成します。
  • ISlideオブジェクトのスライドの参照をそのインデックスで取得します。
  • デフォルトデータを使用してヒストグラムチャートを追加します。
  • デフォルトのシリーズとカテゴリをクリアします。
  • IChartDataWorkbookオブジェクトのチャートデータワークブックにアクセスします。
  • 新しいシリーズを追加し、IChartSeriesオブジェクトでその参照を取得します。
  • 系列にデータポイントを追加します。
  • チャート軸の集計タイプを設定します。
  • Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、C#を使用してヒストグラムチャートを作成する方法を示しています。

// プレゼンテーションをロードまたは作成する
using (Presentation pres = new Presentation())
{
    // ヒストグラムチャートを追加
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.ChartData.Categories.Clear();
    chart.ChartData.Series.Clear();

    // チャートデータワークブックにアクセス
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // クリアワークブック
    wb.Clear(0);

    // チャートシリーズを追加
    IChartSeries series = chart.ChartData.Series.Add(ChartType.Histogram);
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A1", 15));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A2", -41));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A3", 16));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A4", 10));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A5", -23));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A6", 16));

    chart.Axes.HorizontalAxis.AggregationType = AxisAggregationType.Automatic;

    // プレゼンテーションを保存する
    pres.Save("histogram-chart.pptx", SaveFormat.Pptx);
}

以下は、作成されたヒストグラムチャートのスクリーンショットです。

C#のパワーポイントでヒストグラムチャートを作成する

C#を使用してPowerPointで株価チャートを作成する

株価チャートは、PowerPointプレゼンテーションで一般的に使用されるチャートタイプの1つでもあります。株価チャートを作成する手順は次のとおりです。

  • Presentationクラスを使用して新しいPowerPointプレゼンテーションを作成します。
  • スライドのインデックスを使用して、ISlideオブジェクトのスライドの参照を取得します。
  • スライドにOpenHighLowCloseチャートを追加し、IChartオブジェクトでその参照を取得します。
  • デフォルトのシリーズとカテゴリをクリアします。
  • IChartDataWorkbookオブジェクトのチャートデータにアクセスします。
  • チャートに新しいシリーズとカテゴリを追加します。
  • 各チャートシリーズにアクセスし、データポイントを追加します。
  • HiLowLines形式を指定します。
  • Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、C#を使用してPowerPointプレゼンテーションに株価チャートを追加する方法を示しています。

// プレゼンテーションをロードまたは作成する
using (Presentation pres = new Presentation())
{
    // チャートを追加
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    // 明確なカテゴリとシリーズ
    chart.ChartData.Series.Clear();
    chart.ChartData.Categories.Clear();

    // チャートデータワークブックにアクセス
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // カテゴリを追加
    chart.ChartData.Categories.Add(wb.GetCell(0, 1, 0, "A"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 2, 0, "B"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 3, 0, "C"));

    // シリーズを追加
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 1, "Open"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 2, "High"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 3, "Low"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 4, "Close"), chart.Type);

    // データポイントを追加する
    IChartSeries series = chart.ChartData.Series[0];

    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 1, 72));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 1, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 1, 38));

    series = chart.ChartData.Series[1];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 2, 172));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 2, 57));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 2, 57));

    series = chart.ChartData.Series[2];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 3, 13));

    series = chart.ChartData.Series[3];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 4, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 4, 38));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 4, 50));

    // チャートにアップ/ダウンバーがあるかどうかを設定します
    chart.ChartData.SeriesGroups[0].UpDownBars.HasUpDownBars = true;

    // ハイ/ローラインフォーマットを指定
    chart.ChartData.SeriesGroups[0].HiLowLinesFormat.Line.FillFormat.FillType = FillType.Solid;

    foreach (IChartSeries ser in chart.ChartData.Series)
    {
        ser.Format.Line.FillFormat.FillType = FillType.NoFill;
    }

    // プレゼンテーションを保存する
    pres.Save("stock-chart.pptx", SaveFormat.Pptx);
}

以下は、作成された株価チャートのスクリーンショットです。

C#のパワーポイントで株価チャートを作成する

その他のチャートタイプ

上記のグラフに加えて、PowerPointプレゼンテーションに追加できる他の種類のグラフもあります。サポートされているグラフの種類の詳細については、thisのドキュメント記事をご覧ください。

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

評価の制限なしにAPIを試すために、無料の一時ライセンスを取得できます。

結論

この記事では、C#を使用してPowerPointプレゼンテーションでグラフを作成する方法を学習しました。さらに、ステップバイステップガイドとコードサンプルは、縦棒グラフ、散布図、円グラフ、ヒストグラム、および株価グラフを追加する方法を示しています。 ドキュメントを使用して、Aspose.Slides for .NETの詳細を調べることができます。

関連項目