PowerPointプレゼンテーションを作成するC#

MS PowerPointプレゼンテーションを使用すると、テキスト、画像、グラフ、アニメーション、およびその他の要素を含むスライドショーを作成できます。さまざまな追加のフォーマットオプションを使用すると、プレゼンテーションをより魅力的にすることができます。この投稿では、そのようなプレゼンテーションをプログラムで作成する方法を知るようになります。 C#を使用して、テキスト、表、画像、およびグラフを含むPPTXプレゼンテーションを作成する方法を学習します。

C# PowerPoint API-無料ダウンロード

Aspose.Slides for .NETは、.NETアプリケーション内からPowerPointドキュメントを作成および操作できるプレゼンテーション操作APIです。 APIは、基本的なPowerPoint自動化機能と高度なPowerPoint自動化機能を実装するために必要なほぼすべての機能を提供します。 APIをダウンロードするか、NuGetからインストールできます。

Install-Package Aspose.Slides.NET

C#でPowerPointプレゼンテーションを作成する

Aspose.Slides for .NETを使用して空のPowerPointプレゼンテーションを作成することから始めましょう。そのための手順は次のとおりです。

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

// プレゼンテーションファイルを表すPresentationオブジェクトをインスタンス化します
using (Presentation presentation = new Presentation())
{
    // 最初のスライドを取得
    ISlide slide = presentation.Slides[0];

    // スライドにコンテンツを追加...
    
    // プレゼンテーションを保存する
    presentation.Save("NewPresentation.pptx", SaveFormat.Pptx);
}

C#で既存のPowerPointプレゼンテーションを開く

既存のPowerPointプレゼンテーションを開くために余分な労力をかける必要はありません。 PresentationクラスのコンストラクターにPPTXファイルのパスを指定するだけで完了です。次のコードサンプルは、既存のPPTXプレゼンテーションを開く方法を示しています。

// Presentationクラスのコンストラクターにファイルパスを渡してプレゼンテーションファイルを開く
Presentation pres = new Presentation("OpenPresentation.pptx");

// プレゼンテーションのスライドの総数を印刷する
System.Console.WriteLine(pres.Slides.Count.ToString());

C#でプレゼンテーションにスライドを追加する

プレゼンテーションを作成したら、スライドの追加を開始できます。以下は、Aspose.Slides for .NETを使用してプレゼンテーションにスライドを追加する手順です。

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

// プレゼンテーションファイルを表すPresentationクラスをインスタンス化します
using (Presentation pres = new Presentation())
{
    // SlideCollectionクラスをインスタンス化します
    ISlideCollection slds = pres.Slides;

    for (int i = 0; i < pres.LayoutSlides.Count; i++)
    {
        // スライドコレクションに空のスライドを追加します
        slds.AddEmptySlide(pres.LayoutSlides[i]);

    }

    // PPTXファイルをディスクに保存します
    pres.Save("EmptySlide_out.pptx", SaveFormat.Pptx);

}

C#を使用してスライドにテキストを挿入する

これで、PowerPointプレゼンテーションのスライドにコンテンツを追加できます。まず、次の手順を使用して、スライドにテキストを追加しましょう。

  • Presentationクラスを使用して新しいプレゼンテーションを作成します。
  • プレゼンテーションのスライドの参照を取得します。
  • スライドの指定された位置に、IAutoShapeShapeTypeを長方形として追加します。
  • 新しく追加されたIAutoShapeオブジェクトの参照を取得します。
  • デフォルトのテキストを含むオートシェイプにTextFrameを追加します。
  • プレゼンテーションをPPTXファイルとして保存します。

次のコードサンプルは、C#を使用してプレゼンテーションのスライドにテキストを追加する方法を示しています。

// PresentationExのインスタンス化//PresentationExのインスタンス化
using (Presentation pres = new Presentation())
{
    // 最初のスライドを取得
    ISlide sld = pres.Slides[0];

    // 長方形タイプのオートシェイプを追加します
    IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);

    // TextFrameを長方形に追加します
    ashp.AddTextFrame(" ");

    // テキストフレームへのアクセス
    ITextFrame txtFrame = ashp.TextFrame;

    // テキストフレームの段落オブジェクトを作成します
    IParagraph para = txtFrame.Paragraphs[0];

    // 段落の部分オブジェクトを作成する
    IPortion portion = para.Portions[0];

    // テキストを設定
    portion.Text = "Aspose TextBox";

    // プレゼンテーションをディスクに保存します
    pres.Save("presentation.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

C#を使用してプレゼンテーションにテーブルを作成する

Aspose.Slides for .NETは、プレゼンテーションドキュメントにテーブルを作成する簡単な方法を提供します。そのための手順は次のとおりです。

  • Presentationクラスのインスタンスを作成します。
  • スライドのインデックスを使用して、スライドの参照を取得します。
  • 幅のある列と高さのある行の配列を定義します。
  • IShapesオブジェクトによって公開されるSlide.Shapes.AddTable()メソッドを使用してスライドにテーブルを追加し、ITableインスタンスでテーブルへの参照を取得します。
  • 各セルを繰り返し処理して、書式を適用します。
  • Table.Rows[][].TextFrame.Textプロパティを使用してセルにテキストを追加します。
  • プレゼンテーションをPPTXファイルとして保存します。

次のコードサンプルは、PowerPointプレゼンテーションのスライドでテーブルを作成する方法を示しています。

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

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

// 幅のある列と高さのある行を定義する
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };

// スライドにテーブル形状を追加
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);

// 各セルの境界線形式を設定します
for (int row = 0; row < tbl.Rows.Count; row++)
{
	for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
	{
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderTop.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.FillType = (FillType.Solid);
		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color= Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderBottom.Width =5;

		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.SolidFillColor.Color =Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderLeft.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderRight.Width = 5;
	}
}

// 行1のセル1と2を結合します
tbl.MergeCells(tbl.Rows[0][0], tbl.Rows[1][1], false);

// 結合されたセルにテキストを追加する
tbl.Rows[0][0].TextFrame.Text = "Merged Cells";

// PPTXをディスクに保存
pres.Save("table.pptx", SaveFormat.Pptx);

C#を使用してプレゼンテーションでグラフを作成する

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

  • Presentationクラスのインスタンスを作成します。
  • スライドの参照をインデックスで取得します。
  • ISlide.Shapes.AddChart(ChartType、Single、Single、Single、Single)メソッドを使用して、目的のタイプのグラフを追加します。
  • グラフのタイトルを追加します。
  • チャートデータワークシートにアクセスします。
  • デフォルトのシリーズとカテゴリをすべてクリアします。
  • 新しいシリーズとカテゴリを追加します。
  • チャートシリーズの新しいチャートデータを追加します。
  • チャートシリーズの塗りつぶし色を設定します。
  • チャートシリーズのラベルを追加します。
  • プレゼンテーションをPPTXファイルとして保存します。

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

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

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

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

// チャートタイトルの設定
// Chart.ChartTitle.TextFrameForOverriding.Text="サンプルタイトル";
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();
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 = Color.Red;


// 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.Green;

// 最初のラベルにはカテゴリ名が表示されます
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("AsposeChart_out.pptx", SaveFormat.Pptx);

プレゼンテーションチャートの詳細については、こちらをご覧ください。

プレゼンテーションに画像を追加する

プレゼンテーションスライドに画像を追加する手順は次のとおりです。

次のコードサンプルは、C#でプレゼンテーションに画像を追加する方法を示しています。

// プレゼンテーションを作成する
using (var p = new Presentation())
{
	// 画像を読む
	var svgContent = File.ReadAllText("image.svg");
	
	// 画像コレクションに画像を追加する
	var emfImage = p.Images.AddFromSvg(svgContent);
	
	// スライドに画像を追加
	p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, emfImage.Width, emfImage.Height, emfImage);
	
	// プレゼンテーションを保存する
	p.Save("presentation.pptx", SaveFormat.Pptx);        
}

結論

この記事では、C#を使用してPowerPointプレゼンテーションを最初から作成する方法を学習しました。さらに、新規または既存のPPTXプレゼンテーションにスライド、テキスト、表、画像、およびグラフを追加する方法を見てきました。 ドキュメントを使用してAPIの詳細を学ぶことができます。

関連項目

ヒント:スライドやプレゼンテーションの作成に加えて、Aspose.Slidesには、プレゼンテーションを操作できる多くの機能が用意されています。たとえば、Asposeは独自のAPIを使用して、Microsoft PowerPointプレゼンテーション用の無料のオンラインビューアを開発しました。