如何使用JS API在MS Office Word加载项中以编程方式获取Word文档中的文本范围

时间:2019-12-25 16:07:58

标签: ms-word ms-office office-js office-addins word

我需要以编程方式(通过MS Office加载项)获取Word文档中文本的数字范围(例如:起点30,终点35),但是我找不到如何通过JS做到这一点。 这是一个示例:

  

你好,我的朋友皮特,我昨天和你的朋友罗伯特谈过,他   告诉了他的朋友安。

所以,我需要获取我想要的任何单词的范围,并为未来的开发创建单词范围的数组。例如,如果我们谈论单词“ Pete”,则其范围应为(16,20),如果文本的开头为0。当我在Internet上研究该单词时,我发现了一些信息,看来这是不可能的与JS API有关。

但是我在.NET文档中发现了这样的功能。链接在这里 https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-define-and-select-ranges-in-documents?view=vs-2019

最后一个问题。是否有可能(如果是,是否非常复杂,我该如何实现)执行上面使用JS API描述的功能,或者我应该切换到.NET,以免浪费时间。

1 个答案:

答案 0 :(得分:0)

我假设您的意思是获取范围的数字边界,而不是要使用已经必须获得范围的数字边界。因此,如果我了解您想要做什么,那么建议您尝试以下操作:

获取对整个文本的引用,作为Range对象。然后使用Range.split方法获取“ Pete”之前的范围。返回的ranges集合的第一位成员text是“你好,我的朋友”。该字符串的长度是您的起点。您的终点是起点和“ Pete”的长度之和。

var target = "Pete";
var ranges = myRange.split([target], true, true, false);
var precedingRange = ranges.getFirst();
var startPoint = precedingRange.text.length;
var endPoint = starPoint + target.length;