C# найти и заменить текст в PowerPoint

Поиск и замена текста часто используются для обновления содержимого в презентациях PowerPoint. Однако, чтобы выполнить эту операцию для пакета презентаций, вам потребуется автоматизация. Соответственно, в этой статье рассказывается, как программно найти и заменить текст в PowerPoint PPTX/PPT с помощью C#.

C# API для поиска и замены текста в PowerPoint

Чтобы найти и заменить текст в презентациях PowerPoint, мы будем использовать Aspose.Slides for .NET. Это многофункциональный API, предназначенный для создания презентаций PowerPoint и управления ими из приложений .NET. Вы можете либо скачать API, либо установить его с помощью NuGet.

PM> Install-Package Aspose.Slides.NET

Найти и заменить текст в PowerPoint PPTX с помощью C#

Ниже приведены шаги по поиску и замене текста в презентации PPTX с помощью C#.

  • Загрузите презентацию PowerPoint, используя класс Presentation.
  • Прокрутите каждый слайд в презентации.
  • На каждой итерации получайте текстовые фреймы в массиве ITextFrame.
  • Прокрутите массив ITextFrame и на каждой итерации выполните следующие операции:
    • Прокрутите ParagraphCollection в каждом текстовом фрейме.
    • Получите доступ к PartionCollection в каждом Paragraph.
    • Проверьте, содержит ли 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 для .NET без ограничений на пробную версию, запросив временную лицензию.

Вывод

Функция поиска и замены текста в презентациях PowerPoint используется в различных сценариях. Чтобы автоматизировать эту операцию, в статье рассказывалось, как программно находить и заменять текст в презентациях PowerPoint с помощью C#. Вы можете просто установить API в свое приложение и интегрировать предоставленный образец кода. Кроме того, вы можете посетить документацию, чтобы изучить другие функции Aspose.Slides для .NET. Кроме того, вы можете сообщить нам о своих вопросах через наш форум.

Смотрите также