Как вставить элемент в файл.docx в определенном месте с помощью OpenXML SDK в.NET

Эй, ребята, я пытаюсь манипулировать файлом Word .docx, используя openXML SDK и C#.

Я могу нормально открыть файл и вставить абзацы, но мне нужно вставить абзац в определенное место в моем документе (после определенного абзаца в моем теле).

Я не смог найти ничего полезного в Интернете о том, как этого добиться.

Может кто-то указать мне верное направление?

1 ответ

Решение

Решение, на котором я остановился (хотя я знаю, что есть и другие способы), - добавить закладку в документ, найти закладку с помощью SDK и заменить ее списком. Работает отлично.

IDictionary<String, BookmarkStart> bookMarkMap = new Dictionary<String, BookmarkStart>();
            foreach (BookmarkStart bookMarkStart in wordDoc.MainDocumentPart.RootElement.Descendants<BookmarkStart>())
            {
                bookMarkMap[bookMarkStart.Name] = bookMarkStart;
            }

            foreach (BookmarkStart bookMarkStart in bookMarkMap.Values)
            {
                if (bookMarkStart.Name == "MyBookmarkName")
                {
                    //do insert here   
                    var parent = bookMarkStart.Parent;

                    //create paragraph to insert
                    parent.InsertAfter(MyNewParagraph);         
                }
            }
Другие вопросы по тегам