我需要以编程方式(通过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,以免浪费时间。
答案 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;