Замените весь параметр внутреннего текста абзаца новой строкой. использование OpenXML C#

#c# #openxml #paragraph

Вопрос:

Я пишу утилиту, которая считывает файл шаблона .docx с помощью OpenXML на C#. Утилита перечисляет весь абзац по его заголовку и в зависимости от заголовка абзаца (настраивается с помощью файла ini) У меня есть возможность отредактировать абзац или полностью удалить его. У меня все работает с удалением абзаца, но я изо всех сил пытаюсь заменить весь текст абзаца новым. Я знаю о приведенном ниже коде, но это не делает того, что я хочу, потому что абзац состоит из многих элементов, и я изо всех сил пытаюсь понять, как я могу заменить текст абзаца. Текст абзаца действительно полностью содержится в абзаце.Внутренний текст, но его нельзя редактировать. Есть ли обходной путь? Заранее спасибо.

 foreach (Paragraph paragraph in paragraphs)
{
    foreach (Run run in paragraph.Elements<Run>())
    {
        foreach (Text text in run.Elements<Text>())
        {
            Console.WriteLine (text.Text);
        }
    }
}
 

Ответ №1:

С небольшой помощью из другого поста я решил свою проблему. В конце концов, это было довольно просто, мне просто нужно было добавить следующее.

  paragraph.RemoveAllChildren<Run>();
 paragraph.AppendChild<Run>(new Run(new Text("New Paragraph Text")));