Какой самый быстрый способ получить имя локального стиля из диапазона с Word VSTO или WordOpenXML - PullRequest
0 голосов
/ 03 мая 2018

У меня было решение, которое получило paraId среды выполнения, а затем использовало его, чтобы найти локальное имя стилена в openXML, но кажется, что оно может отсутствовать, и я не знаю, как убедиться, что оно всегда там. Это приемлемая скорость, когда она работает (после загрузки officeOpenXMl около 1-2 мс на диапазон). Смотрите предыдущий пост: Слово VSTO - почему иногда отсутствует paraId

Мне нужен стиль для каждого абзаца в выбранном диапазоне. Paragraph.range.wordopenxml будет работать, но это более неэффективно, чем range.get_style (); ~ 60-70мс на диапазон.

Я пробовал range.get_style(), но это также слишком медленно ~ 20-30 мс на диапазон.

Word.Range selectedRange = Globals.ThisAddIn.Application.Selection.Range;

Word.Range firstPara = selectedRange.Paragraphs.First.Range;
Word.Range lastPara = selectedRange.Paragraphs.Last.Range;

while (firstPara.Start <= lastPara.Start)
{
   //I need to get the style NameLocal for paragraph in this range (firstPara).

    firstPara.MoveStart(Word.WdUnits.wdParagraph, 1);
    firstPara.MoveEnd(Word.WdUnits.wdParagraph, 1);
}
...