テキストの検索と置換は、PowerPointプレゼンテーションのコンテンツを更新するためによく使用されます。ただし、プレゼンテーションのバッチに対してこの操作を実行するには、自動化が必要です。したがって、この記事では、C#を使用してプログラムでPowerPoint PPTX/PPTのテキストを検索および置換する方法について説明します。
PowerPointでテキストを検索して置換するC#API
PowerPointプレゼンテーションのテキストを検索して置き換えるために、Aspose.Slides for .NETを使用します。これは、.NETアプリケーション内からPowerPointプレゼンテーションを作成および操作するように設計された機能豊富なAPIです。 APIをダウンロードするか、NuGetを使用してインストールできます。
PM> Install-Package Aspose.Slides.NET
C#を使用してPowerPoint PPTXでテキストを検索して置換する
以下は、C#を使用してPPTXプレゼンテーションのテキストを検索して置換する手順です。
- Presentationクラスを使用してPowerPointプレゼンテーションをロードします。
- プレゼンテーションの各スライドをループします。
- 各反復で、ITextFrame配列のテキストフレームを取得します。
- ITextFrameの配列をループし、各反復で次の操作を実行します。
- 各テキストフレームのParagraphCollectionをループします。
- 各ParagraphのPortionCollectionにアクセスします。
- Portion.Textに検索文字列が含まれているかどうかを確認してください。
- はいの場合、検索文字列の位置を見つけて、Portion.Textプロパティを設定して置き換えます。
- Presentation.Save(string, SaveFormat)メソッドを使用して、更新されたプレゼンテーションを保存します。
次のコードサンプルは、PowerPointプレゼンテーションでテキストを検索して置換する方法を示しています。
// プレゼンテーションを読み込む
Presentation pres = new Presentation("mytextone.pptx");
string strToFind = "search string";
string strToReplaceWith = "replace string";
// 各スライドをループする
foreach (Slide slide in pres.Slides)
{
// スライド内のすべてのテキストフレームを取得します
ITextFrame[] tf = SlideUtil.GetAllTextBoxes(slide);
for (int i = 0; i < tf.Length; i++)
foreach (Paragraph para in tf[i].Paragraphs)
foreach (Portion port in para.Portions)
// 置き換えるテキストを探す
if (port.Text.Contains(strToFind))
{
// 既存のテキストを新しいテキストに置き換えます
string str = port.Text;
int idx = str.IndexOf(strToFind);
string strStartText = str.Substring(0, idx);
string strEndText = str.Substring(idx + strToFind.Length, str.Length - 1 - (idx + strToFind.Length - 1));
port.Text = strStartText + strToReplaceWith + strEndText;
}
}
// プレゼンテーションを保存する
pres.Save("myTextOneAspose.pptx", SaveFormat.Pptx);
無料のAPIライセンスを取得する
一時ライセンスをリクエストすることで、評価の制限なしにAspose.Slides for .NETを使用できます。
結論
PowerPointプレゼンテーションでテキストを検索して置換する機能は、さまざまなシナリオで使用されます。この操作を自動化するために、この記事では、C#を使用してプログラムでPowerPointプレゼンテーションのテキストを検索および置換する方法について説明しました。アプリケーションにAPIをインストールして、提供されているコードサンプルを統合するだけです。さらに、ドキュメントにアクセスして、Aspose.Slides for .NETの他の機能を調べることができます。また、フォーラムからお気軽にお問い合わせください。