C#. Библиотека DocX. Редактирование списков в документе
Задача: в документе docx имеется список, в него нужно добавить элементы. Использую библиотеку Xceed.Words.NET (DocX)
для редактирования файлов, так как она самая удобная из бесплатных.
Код вроде этого
document = DocX.Load(pathIn);
var list = document.Lists.First();
// list.AddItem(paragraph); ???
document.AddListItem(list, "NEW ITEM");
document.InsertList(list);
Не редактирует список, а добавляет его вконец документа, при этом старый список остаётся на месте, но новый продолжает нумерацию старого.
Как использовать метод AddItem не разобрался. В исходниках либы этот метод сначала проверяет, является ли параграф isListItem, то есть любой параграф туда не подсунешь.
Если кто-то работал с этой библиотекой, подскажите возможные варианты решения или хотя бы в какую сторону копать. Официальную документацию уже всю перерыл.
До этого, когда нужно было создавать списки после метки в документе, я использовал следующий способ:
private static void LablesToLists()
{
//Ищем параграфы с меткой
var paragraphs = document.Paragraphs.Where(p => p.Text.Contains("{{LIST}}")).ToList();
foreach (var i in paragraphs)
{
var list = document.AddList(listType: ListItemType.Numbered);
document.AddListItem(list, "ITEM 1");
document.AddListItem(list, "ITEM 2");
document.AddListItem(list, "ITEM 3");
document.AddListItem(list, "ITEM 4");
document.AddListItem(list, "ITEM 5");
//После параграфа вставляем список
i.InsertListAfterSelf(list);
}
// Удаляем параграфы
paragraphs.ForEach(p => document.RemoveParagraph(p));
}
Но в данном случае нужно сохранить исходное форматирование списка. Возможно, можно так же создать новый список, но как-то применить к нему стили прошлого (отступы, маркеры и т.д.).