四半期の業務報告や製品企画のプレゼンテーションを作成する際、データテーブルの表示は文字説明よりもオーディエンスが素早く要点を把握できる——売上比較、機能一覧、スケジュール表のいずれであっても、構造が明確なテーブルがあれば情報伝達は倍増します。しかしながら、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 オブジェクトを返します。パラメータはそれぞれ「テーブル左上の x・y 座標、各列の幅 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」が生成されます。効果は以下の通りです:
総合効果では、テーブルの作成、データ入力、ビルドインスタイルの適用、行操作が表示されています。
キーインターフェイスとメソッドの解読
| 機能ポイント | コアインターフェイス/プロパティ | 説明 |
|---|---|---|
| テーブル作成 | 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:マイルストーン、担当者、完了ステータスをテーブルで提示;
- 製品・競合製品比較:機能・価格などの次元の比較を構造化して表示;
- 四半期経営分析:月次・四半期の売上データを前年と比較。
この方法ではテーブル作成の時間的コストが不要になるほか、同じコードベースでは毎回出力されるテーブルのスタイル・構造・データが完全に一致するため、レポートの一括作成に非常に適しています。ITable、TableRows、TableRows などのインターフェイスを基盤に、セルスタイルの単一設定、行の高さの自動フィット、クロステーブルのデータ同期などさらに拡張することで、テーブル機能をチームのものにすることもできます。
もし PowerPoint のデータドリブンページを扱うなら、この Spire.Presentation ベースの C# ソリューションは、あなたのワークフローに直観的な効率性をもたらします。
