Как вставить элемент в файл.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);
}
}