0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C# で PowerPoint プレゼンテーションに表を作成する:プレゼンデータを明確にする

0
Posted at

四半期の業務報告や製品企画のプレゼンテーションを作成する際、データテーブルの表示は文字説明よりもオーディエンスが素早く要点を把握できる——売上比較、機能一覧、スケジュール表のいずれであっても、構造が明確なテーブルがあれば情報伝達は倍増します。しかしながら、PowerPoint の手動作業でテーブルを作成し、行の高さや列の幅を調整し、スタイルを設定し直すことは多くのビジネスパーソンにとって共通の悩みであり、特にデータレポートを一括生成する必要がある場面では、その効率は大きく損なわれます。

本記事では、無料ライブラリ Free Spire.Presentation for .NET を C# で使用し、PowerPoint プレゼンテーション内でプログラムによってテーブルを作成し、データを入力する方法を紹介します。テーブルスタイルのカスタマイズ、テーブル行の操作、行の高さの設定、.pptx ファイルとして保存します。このプロセスは Microsoft Office に依存せず、Windows / Linux / macOS で実行できます。

環境準備

まず、NuGet を通じて Free Spire.Presentation for .NET をインストールします。パッケージマネージャーコンソールで次のコマンドを実行します:

Install-Package FreeSpire.Presentation

Spire.Presentation は純粋な .NET クラスライブラリであり、Office ドキュメントの自動作成・読み取り・変更・変換をサポートしています。本記事では Spire.Presentation 名前空間のコアタイプを使用します。


1. プレゼンテーションを作成し、スライドを取得する

using Spire.Presentation;
using Spire.Presentation.Drawing;

// Presentation インスタンスを作成
Presentation presentation = new Presentation();

// 最初の空白スライドを取得
ISlide slide = presentation.Slides[0];

説明Presentation クラスは PowerPoint ドキュメントを表します。Slides[] プロパティでスライドコレクションを取得でき、インデックス [0] が最初のスライドです。


2. スライドにテーブルを作成する

// 各列の幅(ピクセル)を定義
float[] widths = new float[] { 160, 120, 120 };

// 各行の高さ(ピクセル)を定義
float[] heights = new float[] { 35, 35, 35, 35, 35 };

// 座標 (100, 80) の位置に 3 列 5 行のテーブルを作成
ITable table = slide.Shapes.AppendTable(100, 80, widths, heights);

説明Shapes.AppendTable(x, y, widths, heights)ITable オブジェクトを返します。パラメータはそれぞれ「テーブル左上の xy 座標、各列の幅 widths と各行の高さ heights です。ITable はテーブル操作のコアインターフェイスであり、行セット、セルアクセス、スタイル設定などの機能を提供します。


3. セルデータを入力する

// ヘッダーを入力
table.TableRows[0][0].TextFrame.Text = "製品カテゴリ";
table.TableRows[0][1].TextFrame.Text = "四半期売上高";
table.TableRows[0][2].TextFrame.Text = "前年比成長率";

// データ行を入力
table.TableRows[1][0].TextFrame.Text = "クラウドサービス";
table.TableRows[1][1].TextFrame.Text = "¥1,200,000";
table.TableRows[1][2].TextFrame.Text = "35%";

table.TableRows[2][0].TextFrame.Text = "データサービス";
table.TableRows[2][1].TextFrame.Text = "¥860,000";
table.TableRows[2][2].TextFrame.Text = "28%";

table.TableRows[3][0].TextFrame.Text = "AI サービス";
table.TableRows[3][1].TextFrame.Text = "¥2,100,000";
table.TableRows[3][2].TextFrame.Text = "60%";

説明:テーブルのセルには ITableRows[row][col] でアクセスでき、セルの TextFrame.Text プロパティがテキスト内容です。行・列のインデックスはともに 0 から始まります。


4. テーブルスタイルを適用する

table.StylePreset = TableStylePreset.LightStyle1Accent2;

説明StylePreset プロパティでビルドインのテーブルスタイルを直接適用でき、LightStyle1Accent2 のように指定すれば、手動で罫線や背景色を設定する必要なしに、洗練されたプロフェッショナルな外観が得られます。


5. テーブル行を操作する

// テーブルの末尾に既存の行を追加
table.TableRows.Append(table.TableRows[0]);

// 2 番目の位置にテーブルの行を挿入
table.TableRows.Insert(2, table.TableRows[1]);

// 3 番目の行を削除(第 2 引数 false は削除時に確認を伴わない)
table.TableRows.RemoveAt(3, false);

// 1 行目の高さを調整
table.TableRows[0].Height = 45;

説明

  • TableRows.Append(row)TableRow オブジェクトをテーブル末尾に追加します。
  • TableRows.Insert(index, row):指定したインデックス位置に行を挿入します。
  • TableRows.RemoveAt(index, confirm):指定インデックスの行を削除します。第 2 引数は削除時に確認するかどうかのフラグです。
  • 行の高さは TableRows[row].Height プロパティで設定します。

6. プレゼンテーションを保存

presentation.SaveToFile("表作成の例.pptx", FileFormat.Pptx2013);
presentation.Dispose();

説明SaveToFile でドキュメントを指定した形式で保存します。FileFormat.Pptx2019 は PowerPoint 2019 形式に対応しています。フォーマットを指定しない場合は既定で .pptx として保存されます。Dispose はリソース開放用です。


7. 完全な例と効果の展示

以下は前述の各ステップを統合した完全な実行可能コードです:

using Spire.Presentation;
using Spire.Presentation.Drawing;

// プレゼンテーションを作成し最初のスライドを取得
Presentation presentation = new Presentation();
ISlide slide = presentation.Slides[0];

// テーブル構造を定義:3 列 5 行
double[] widths = new double[] { 160, 120, 120 };
double[] heights = new double[] { 35, 35, 35, 35, 35 };
ITable table = slide.Shapes.AppendTable(100, 80, widths, heights);

// ヘッダーとデータを入力
table.TableRows[0][0].TextFrame.Text = "製品カテゴリ";
table.TableRows[0][1].TextFrame.Text = "四半期売上高";
table.TableRows[0][2].TextFrame.Text = "前年比成長率";
table.TableRows[1][0].TextFrame.Text = "クラウドサービス";
table.TableRows[1][1].TextFrame.Text = "¥1,200,000";
table.TableRows[1][2].TextFrame.Text = "35%";
table.TableRows[2][0].TextFrame.Text = "データサービス";
table.TableRows[2][1].TextFrame.Text = "¥860,000";
table.TableRows[2][2].TextFrame.Text = "28%";
table.TableRows[3][0].TextFrame.Text = "AI サービス";
table.TableRows[3][1].TextFrame.Text = "¥2,100,000";
table.TableRows[3][2].TextFrame.Text = "60%";

// ビルドインのテーブルスタイルを適用
table.StylePreset = TableStylePreset.LightStyle1Accent2;

// テーブル行の操作:追加、挿入、削除、行高調整
table.TableRows.Append(table.TableRows[0]);
table.TableRows.Insert(2, table.TableRows[1]);
table.TableRows.RemoveAt(3, false);
table.TableRows[0].Height = 45;

// 保存してリソースを解放
presentation.SaveToFile("表作成の例.pptx", FileFormat.Pptx2013);
presentation.Dispose();

上記のコードを実行すると、プロジェクトディレクトリに「表作成の例.pptx」が生成されます。効果は以下の通りです:

C#でPowerPointに表を作成する効果

総合効果では、テーブルの作成、データ入力、ビルドインスタイルの適用、行操作が表示されています。


キーインターフェイスとメソッドの解読

機能ポイント コアインターフェイス/プロパティ 説明
テーブル作成 ISlide.Shapes.AppendTable() スライドの指定位置にテーブルを作成し、ITable オブジェクトを返す
セル入力 ITable.TableRows[row][col].TextFrame.Text セルを「行・列」でアクセスし、テキストを入力する
テーブルスタイル ITable.StylePreset ビルドインのスタイルプリセットでテーブルの外観をクイックに設定
行追加 ITable.TableRows.Append(row) テーブル末尾に行を追加
行挿入 ITable.TableRows.Insert(index, row) 指定位置に行を挿入
行削除 ITable.TableRows.RemoveAt(index, confirm) インデックスで行を削除
行高調整 ITable.TableRows[row].Height 直接行の高さを設定し、内容との一致を図る
ドキュメント保存 Presentation.SaveToFile(path, FileFormat) 指定した形式でドキュメントをローカルパスに保存

まとめ

本記事では、C# で PowerPoint プレゼンテーションにテーブルを構築する完全なフローを説明しました。ドキュメント作成、テーブル構造の定義、業務データの入力、スタイルの適用と行操作。この全体のプロセスは完全にコードで駆動され、以下のシーンに適しています:

  • 進捗レポート PPT:マイルストーン、担当者、完了ステータスをテーブルで提示;
  • 製品・競合製品比較:機能・価格などの次元の比較を構造化して表示;
  • 四半期経営分析:月次・四半期の売上データを前年と比較。

この方法ではテーブル作成の時間的コストが不要になるほか、同じコードベースでは毎回出力されるテーブルのスタイル・構造・データが完全に一致するため、レポートの一括作成に非常に適しています。ITableTableRowsTableRows などのインターフェイスを基盤に、セルスタイルの単一設定行の高さの自動フィットクロステーブルのデータ同期などさらに拡張することで、テーブル機能をチームのものにすることもできます。

もし PowerPoint のデータドリブンページを扱うなら、この Spire.Presentation ベースの C# ソリューションは、あなたのワークフローに直観的な効率性をもたらします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?