首页 > 解决方案 > 使用 Word VSTO 或 WordOpenXML 从范围获取本地样式名称的最快方法是什么

问题描述

我有一个获得运行时 paraId 的解决方案,然后使用它在 openXML 中查找本地样式名,但似乎它可能会丢失,我不知道如何确保它始终存在。这是工作时可以接受的速度(在每个范围加载 officeOpenXMl 大约 1-2 毫秒之后)。请参阅上一篇文章: Word 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);
}

标签: ms-wordinteropvstoopenxml

解决方案


推荐阅读