Ⅰ. はじめに
タイトルの通り「C#でPowerPoint(ppt, pptx)ファイルから文字列を抽出する方法」です。
Ⅱ. やり方
1. サンプルファイルを用意する
http://www.mediafire.com/file/b66k4kxskc2agl1/sample.pptx/file
2. 参照を追加する
画像の2つのCOM参照を追加する事で「Microsoft.Office.Core」と「Microsoft.Office.Interop.PowerPoint」が追加されます。
3. サンプルプログラムを書く
using System; using Microsoft.Office.Core; using PPT = Microsoft.Office.Interop.PowerPoint; namespace GetPowerPointText { class Program { static void Main(string[] args) { var file = new PPT.Application().Presentations.Open("c:\\sample.pptx", MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); var slideCount = file.Slides.Count; Console.WriteLine($"スライド数:{slideCount}"); foreach (PPT.Shape shape in file.Slides[1].Shapes) { if (shape.HasTextFrame == MsoTriState.msoTrue) { if (shape.TextFrame.HasText == MsoTriState.msoTrue) { Console.WriteLine(shape.TextFrame.TextRange.Text); } } else if (shape.HasTable == MsoTriState.msoTrue) { // インデックスを指定する場合 // Console.WriteLine(shape.Table.Columns[2].Cells[3].Shape.TextFrame.TextRange.Text); foreach (PPT.Column column in shape.Table.Columns) { foreach (PPT.Cell cell in column.Cells) { Console.WriteLine(cell.Shape.TextFrame.TextRange.Text); } } } } file.Close(); } } }
実行結果