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

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

PowerPointでグラフを作成するためのJavaAPI

プレゼンテーションでさまざまな種類のグラフを作成するために、Aspose.Slides for Javaを使用します。上記のAPIを使用すると、Javaアプリケーション内からPowerPointプレゼンテーションを作成および操作できます。さらに、チャートを作成してプレゼンテーションにシームレスに追加することができます。 APIをダウンロードするか、次のMaven構成を使用してインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-slides</artifactId>
    <version>21.7</version>
    <classifier>jdk16</classifier>
</dependency>

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

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

  • まず、Presentationクラスのインスタンスを作成します(既存のプレゼンテーションをロードする場合は、コンストラクターでファイルのパスを指定します)。
  • スライドのインデックスを指定して、スライドの参照を取得します。
  • タイプChartType.ClusteredColumnとともにデフォルトデータを含むグラフを追加します。
  • デフォルトのシリーズとカテゴリをクリアします。
  • IChartDataWorkbookオブジェクトのチャートデータワークブックにアクセスします。
  • チャートの新しいシリーズとカテゴリをワークブックに追加します。
  • チャートシリーズに新しいチャートデータを追加します。
  • 最後に、Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

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

// 新しいプレゼンテーションを作成する
Presentation pres = new Presentation();
try {
    
    // 新しい縦棒グラフを追加し、デフォルトのカテゴリとシリーズをクリアします
    IChart ch = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 600, 450);
    ch.getChartData().getSeries().clear();
    ch.getChartData().getCategories().clear();
    
    // チャートデータにアクセスする
    IChartDataWorkbook fact = ch.getChartData().getChartDataWorkbook();
    fact.clear(0);
    int defaultWorksheetIndex = 0;

    // カテゴリを追加
    IChartCategory category = ch.getChartData().getCategories().add(fact.getCell(0, "c2", "A"));
    category.getGroupingLevels().setGroupingItem(1, "Group1");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c3", "B"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c4", "C"));
    category.getGroupingLevels().setGroupingItem(1, "Group2");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c5", "D"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c6", "E"));
    category.getGroupingLevels().setGroupingItem(1, "Group3");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c7", "F"));

    category = ch.getChartData().getCategories().add(fact.getCell(0, "c8", "G"));
    category.getGroupingLevels().setGroupingItem(1, "Group4");
    category = ch.getChartData().getCategories().add(fact.getCell(0, "c9", "H"));

    // シリーズを追加
    IChartSeries series = ch.getChartData().getSeries().add(fact.getCell(0, "D1", "Series 1"),
            ChartType.ClusteredColumn);

    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D2", 10));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D3", 20));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D4", 30));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D5", 40));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D6", 50));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D7", 60));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D8", 70));
    series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D9", 80));
    
    // チャートでプレゼンテーションを保存
    pres.save("column-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

PowerPointJavaで縦棒グラフを作成する

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

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

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

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

// PPTXファイルを表すPresentationクラスをインスタンス化します
Presentation pres = new Presentation();
try {
    // 最初のスライドにアクセスする
    ISlide slide = pres.getSlides().get_Item(0);

    // デフォルトのチャートを作成する
    IChart chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
    
    // デフォルトのチャートデータワークシートインデックスを取得する
    int defaultWorksheetIndex = 0;
    
    // グラフデータワークシートを取得する
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // デモシリーズを削除
    chart.getChartData().getSeries().clear();
    
    // 新しいシリーズを追加
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType());
    chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.getType());
    
    // 最初のチャートシリーズを取る
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);
    
    // そこに新しいポイント(1:3)を追加します。
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 1), fact.getCell(defaultWorksheetIndex, 2, 2, 3));
    
    // 新しいポイントを追加(2:10)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 2), fact.getCell(defaultWorksheetIndex, 3, 2, 10));
    
    // シリーズの種類を編集する
    series.setType(ChartType.ScatterWithStraightLinesAndMarkers);
    
    // チャートシリーズマーカーを変更する
    series.getMarker().setSize(10);
    series.getMarker().setSymbol(MarkerStyleType.Star);
    
    // 2番目のチャートシリーズを取る
    series = chart.getChartData().getSeries().get_Item(1);
    
    // そこに新しいポイント(5:2)を追加します。
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 5), fact.getCell(defaultWorksheetIndex, 2, 4, 2));
    
    // 新しいポイントを追加(3:1)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 3), fact.getCell(defaultWorksheetIndex, 3, 4, 1));
    
    // 新しいポイントを追加(2:2)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 4, 3, 2), fact.getCell(defaultWorksheetIndex, 4, 4, 2));
    
    // 新しいポイントを追加(5:1)
    series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 5, 3, 5), fact.getCell(defaultWorksheetIndex, 5, 4, 1));
    
    // チャートシリーズマーカーを変更する
    series.getMarker().setSize(10);
    series.getMarker().setSymbol(MarkerStyleType.Circle);
    
    // プレゼンテーションを保存する
    pres.save("scatter-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

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

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

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

  • Presentationクラスを使用して、新しいプレゼンテーションを作成するか、既存のプレゼンテーションをロードします。
  • インデックスを提供して、スライドの参照を取得します。
  • タイプChartType.Pieとともにデフォルトデータを含むグラフを追加します。
  • IChartDataWorkbookオブジェクトのグラフデータにアクセスします。
  • デフォルトのシリーズとカテゴリをクリアします。
  • 新しいシリーズとカテゴリを作成します。
  • チャートシリーズの新しいチャートデータを追加します。
  • グラフに新しいポイントを追加し、円グラフのセクターにカスタム色を追加します。
  • シリーズのラベルとラベルの引出線を設定します。
  • 円グラフスライドの回転角度を設定します。
  • Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

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

// PPTXファイルを表すPresentationクラスをインスタンス化します
Presentation pres = new Presentation();
try {
    // 最初のスライドにアクセスする
    ISlide slides = pres.getSlides().get_Item(0);
    
    // デフォルトデータでチャートを追加
    IChart chart = slides.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400);
    
    // チャートタイトルの設定
    chart.getChartTitle().addTextFrameForOverriding("Sample Title");
    chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
    chart.getChartTitle().setHeight(20);
    chart.setTitle(true);
    
    // 最初のシリーズを値を表示するように設定します
    chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
    
    // チャートデータシートのインデックスを設定する
    int defaultWorksheetIndex = 0;
    
    // グラフデータワークシートを取得する
    IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
    
    // デフォルトで生成されたシリーズとカテゴリを削除する
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();
    
    // 新しいカテゴリを追加する
    chart.getChartData().getCategories().add(fact.getCell(0, 1, 0, "First Qtr"));
    chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "2nd Qtr"));
    chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "3rd Qtr"));
    
    // 新しいシリーズを追加
    IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
    
    // 系列データを入力しています
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
    series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
    
    // 新しいバージョンでは機能しません
    // 新しいポイントの追加とセクターの色の設定
    // series.IsColorVaried = true;
    chart.getChartData().getSeriesGroups().get_Item(0).setColorVaried(true);
    
    IChartDataPoint point = series.getDataPoints().get_Item(0);
    point.getFormat().getFill().setFillType(FillType.Solid);
    point.getFormat().getFill().getSolidFillColor().setColor(Color.CYAN);
	
    // セクター境界を設定する
    point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
    point.getFormat().getLine().setWidth(3.0);
    //point.getFormat().getLine().setStyle(LineStyle.ThinThick);
    //point.getFormat().getLine().setDashStyle(LineDashStyle.DashDot);
    
    IChartDataPoint point1 = series.getDataPoints().get_Item(1);
    point1.getFormat().getFill().setFillType(FillType.Solid);
    point1.getFormat().getFill().getSolidFillColor().setColor(Color.ORANGE);
    
    // セクター境界を設定する
    point1.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point1.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
    point1.getFormat().getLine().setWidth(3.0);
    //point1.getFormat().getLine().setStyle(LineStyle.Single);
    //point1.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDot);
    
    IChartDataPoint point2 = series.getDataPoints().get_Item(2);
    point2.getFormat().getFill().setFillType(FillType.Solid);
    point2.getFormat().getFill().getSolidFillColor().setColor(Color.YELLOW);
    
    // セクター境界を設定する
    point2.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
    point2.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED);
    point2.getFormat().getLine().setWidth(2.0);
    //point2.getFormat().getLine().setStyle(LineStyle.ThinThin);
    //point2.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDotDot);
    
    // 新しいシリーズのカテゴリごとにカスタムラベルを作成する
    IDataLabel lbl1 = series.getDataPoints().get_Item(0).getLabel();
    
    // lbl.ShowCategoryName = true;
    lbl1.getDataLabelFormat().setShowValue(true);
    
    IDataLabel lbl2 = series.getDataPoints().get_Item(1).getLabel();
    lbl2.getDataLabelFormat().setShowValue(true);
    lbl2.getDataLabelFormat().setShowLegendKey(true);
    lbl2.getDataLabelFormat().setShowPercentage(true);
    
    IDataLabel lbl3 = series.getDataPoints().get_Item(2).getLabel();
    lbl3.getDataLabelFormat().setShowSeriesName(true);
    lbl3.getDataLabelFormat().setShowPercentage(true);
    
    // チャートの引出線を表示する
    series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(true);
    
    // 円グラフセクターの回転角を設定する
    chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180);
    
    // チャートでプレゼンテーションを保存
    pres.save("pie-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

PowerPointJavaで円グラフを作成する

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

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

  • Presentationクラスを使用して、新しいプレゼンテーションを作成するか、既存のプレゼンテーションをロードします。
  • スライドのインデックスを提供して、スライドの参照を取得します。
  • タイプChartType.Histogramとともにデフォルトデータを含むグラフを追加します。
  • IChartDataWorkbookオブジェクトのチャートデータにアクセスします。
  • デフォルトのシリーズとカテゴリをクリアします。
  • 新しいシリーズとカテゴリを追加します。
  • Presentation.save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

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

// 新しいプレゼンテーションを作成する
Presentation pres = new Presentation();
try {
    
    // 新しいヒストグラムチャートを追加し、そのカテゴリとシリーズをクリアします
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.getChartData().getCategories().clear();
    chart.getChartData().getSeries().clear();

    // チャートデータへのアクセス
    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
    wb.clear(0);

    // シリーズを追加
    IChartSeries series = chart.getChartData().getSeries().add(ChartType.Histogram);
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A1", 15));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A2", -41));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A3", 16));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A4", 10));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A5", -23));
    series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A6", 16));

    chart.getAxes().getHorizontalAxis().setAggregationType(AxisAggregationType.Automatic);

    // プレゼンテーションを保存する
    pres.save("histogram-chart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

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

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

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

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

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

// 新しいプレゼンテーションを作成する
Presentation pres = new Presentation();
try {
    
    // チャートを追加
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    // 明確なカテゴリとシリーズ
    chart.getChartData().getSeries().clear();
    chart.getChartData().getCategories().clear();

    // チャートデータへのアクセス
    IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();

    // カテゴリを追加
    chart.getChartData().getCategories().add(wb.getCell(0, 1, 0, "A"));
    chart.getChartData().getCategories().add(wb.getCell(0, 2, 0, "B"));
    chart.getChartData().getCategories().add(wb.getCell(0, 3, 0, "C"));

    chart.getChartData().getSeries().add(wb.getCell(0, 0, 1, "Open"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 2, "High"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 3, "Low"), chart.getType());
    chart.getChartData().getSeries().add(wb.getCell(0, 0, 4, "Close"), chart.getType());

    // シリーズデータを追加する
    IChartSeries series = chart.getChartData().getSeries().get_Item(0);

    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 1, 72));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 1, 25));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 1, 38));

    series = chart.getChartData().getSeries().get_Item(1);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 2, 172));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 2, 57));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 2, 57));

    series = chart.getChartData().getSeries().get_Item(2);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 3, 12));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 3, 12));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 3, 13));

    series = chart.getChartData().getSeries().get_Item(3);
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 4, 25));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 4, 38));
    series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 4, 50));

    chart.getChartData().getSeriesGroups().get_Item(0).getUpDownBars().setUpDownBars(true);
    chart.getChartData().getSeriesGroups().get_Item(0).getHiLowLinesFormat().getLine().getFillFormat().setFillType(FillType.Solid);

    for (IChartSeries ser : chart.getChartData().getSeries())
    {
        ser.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
    }

    // プレゼンテーションを保存する
    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

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

その他のチャートタイプ

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

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

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

オンラインでお試しください

Aspose.Slidesに基づくPowerPointプレゼンテーションでグラフを作成するための無料のオンラインツールを試すこともできます。

結論

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

関連項目