PowerPoint C#でテーブルを作成および操作する

テーブルは、データを行と列の形式で配置するために使用されます。さらに、データを整理して要約し、簡単に表示および分析できるようにします。 MS PowerPointでは、プレゼンテーションにテーブルを挿入することもできます。したがって、この記事では、C#を使用してPowerPointプレゼンテーションでテーブルを作成および操作する方法について説明します。

PowerPointでテーブルを作成および操作するためのC#API

PowerPointプレゼンテーションでテーブルを作成および操作するには、Aspose.Slides for .NETを使用します。 APIを使用すると、PowerPointおよびOpenOfficeドキュメントを作成、操作、および変換できます。 APIのDLLをダウンロードして、プロジェクトにそのDLLへの参照を追加できます。また、NuGetを使用してインストールすることもできます。

PM> Install-Package Aspose.Slides.NET

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

Aspose.Slides for .NETを使用してテーブルを作成するのは簡単です。次の手順は、C#を使用してPowerPointプレゼンテーションでテーブルを作成する方法を示しています。

  • まず、Presentationクラスを使用して、新しいプレゼンテーションを作成するか、既存のプレゼンテーションをロードします。
  • 次に、目的のスライドの参照をISlideオブジェクトに取得します。
  • double[]配列で列と行の幅と高さをそれぞれ定義します。
  • ISlide.Shapes.AddTable()メソッドを使用して、プレゼンテーションに新しいテーブルを挿入します。
  • ITableオブジェクトで新しく作成されたテーブルの参照を取得します。
  • テーブルの行を反復処理するループを作成します。
  • ネストされたループを作成してテーブルのセルを反復処理し、各反復で次の操作を実行します。
  • 最後に、Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

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

// プレゼンテーションを作成またはロードする
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].TextFrame.Text = "Cells_" + 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;
	}
}

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

次のスクリーンショットは、上記のコードを使用して作成したテーブルを示しています。

PowerPoint C#でテーブルを作成する

C#を使用してプレゼンテーションのテーブルにアクセスする

また、既存のPowerPointプレゼンテーションのテーブルにアクセスして、必要に応じて操作することもできます。プレゼンテーションのテーブルにアクセスする手順は次のとおりです。

  • まず、Presentationクラスを使用して既存のプレゼンテーションをロードします。
  • 次に、目的のスライドの参照をISlideオブジェクトに取得します。
  • ITableのインスタンスを作成し、nullで初期化します。
  • ISlide.Shapesコレクション内のすべてのIShapeオブジェクトを反復処理します。
  • タイプITableの形状をフィルタリングします。
  • 形状をITableに型キャストし、必要に応じて操作します。
  • 最後に、Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

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

// プレゼンテーションを読み込む
using (Presentation pres = new Presentation("UpdateExistingTable.pptx"))
{
    // 最初のスライドにアクセスする
    ISlide sld = pres.Slides[0];

    // nullTableExを初期化します
    ITable tbl = null;

    // 形状を繰り返し処理し、見つかったテーブルへの参照を設定します
    foreach (IShape shp in sld.Shapes)
        if (shp is ITable)
            tbl = (ITable)shp;

    // 2行目の1列目のテキストを設定します
    tbl[0, 1].TextFrame.Text = "New";

    //PPTXをディスクに書き込む
    pres.Save("table1_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

C#を使用してPowerPointテーブルのテキストをフォーマットする

Aspose.Slides for .NETでは、以下の手順に示すように、テーブルの書式設定を非常に簡単に設定することもできます。

  • まず、Presentationクラスを使用して既存のプレゼンテーションをロードします。
  • 次に、目的のスライドの参照をISlideオブジェクトに取得します。
  • スライドからITableオブジェクトに目的のテーブルの参照を取得します。
  • PortionFormatParagraphFormat、およびTextFrameFormatクラスを使用してフォーマットを設定します。
  • ITable.setTextFormat()メソッドを使用して、テーブルにフォーマットを割り当てます。
  • 最後に、Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、C#を使用してPowerPointでテーブルのフォーマットを設定する方法を示しています。

// プレゼンテーションを作成またはロードする
Presentation presentation = new Presentation();

// スライドの参照を取得する
ISlide slide = presentation.Slides[0];

// テーブルの参照を取得します
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// テーブルセルのフォントの高さを設定する
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);

// 1回の呼び出しでテーブルセルのテキストの配置と右マージンを設定します
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);

// 表のセルのテキストの垂直方向のタイプを設定する
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);

// プレゼンテーションを保存する
presentation.Save("result.pptx", SaveFormat.Pptx);

C#を使用してPowerPointのテーブルのアスペクト比をロックする

C#を使用して、PowerPointプレゼンテーションのテーブルのアスペクト比をロックすることもできます。これを実現するための手順は次のとおりです。

  • まず、Presentationクラスを使用して既存のプレゼンテーションをロードします。
  • 次に、目的のスライドの参照をISlideオブジェクトに取得します。
  • テーブルを作成するか、既存のテーブルの参照をITableオブジェクトに取得します。
  • ITable.ShapeLock.AspectRatioLockedプロパティを!ITable.ShapeLock.AspectRatioLockedに設定して、アスペクト比をロックします。
  • 最後に、Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、PowerPointプレゼンテーションでテーブルのアスペクト比をロックする方法を示しています。

// プレゼンテーションを読み込む
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // テーブルの参照を取得します
    ITable table = (ITable)pres.Slides[0].Shapes[0];
    Console.WriteLine($"ロックのアスペクト比 set: {table.ShapeLock.AspectRatioLocked}");

    // ロックのアスペクト比
    table.ShapeLock.AspectRatioLocked = !table.ShapeLock.AspectRatioLocked; // invert
    Console.WriteLine($"ロックのアスペクト比 set: {table.ShapeLock.AspectRatioLocked}");

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

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

無料の一時ライセンスを取得することで、評価の制限なしにAspose.Slides for .NETを使用できます。

結論

この記事では、C#を使用してPowerPointプレゼンテーションでテーブルを作成する方法を学習しました。さらに、PowerPointプレゼンテーションの既存のテーブルにプログラムでアクセスして操作する方法を見てきました。さらに、ドキュメントにアクセスして、Aspose.Slides for .NETの詳細を確認できます。また、フォーラムから質問することもできます。

関連項目