Ms word 使用单词序列号搜索选项-MS Office Word Addin OfficeJS

Ms word 使用单词序列号搜索选项-MS Office Word Addin OfficeJS,ms-word,office-js,javascript-api-for-office,Ms Word,Office Js,Javascript Api For Office,现在,我在Word文档中通过使用 context.document.body.search(dict, { ignorePunct: true, matchCase: true, matchWholeWord: true });` 但是我想通过单词文档中的顺序位置来定位单词。我找不到确切的第n个单词 有可能做到这一点吗?Office JS API(还)没有一个与Word COM对象Words等效的方法,可以通过索引值指定给定范围内的“Word”。考虑到单词被空格分隔的事实,您可以获得文档的整个

现在,我在Word文档中通过使用

context.document.body.search(dict, { ignorePunct: true, matchCase: true, matchWholeWord: true });`
但是我想通过单词文档中的顺序位置来定位单词。我找不到确切的第n个单词

有可能做到这一点吗?

Office JS API(还)没有一个与Word COM对象
Words
等效的方法,可以通过索引值指定给定范围内的“Word”。考虑到单词被空格分隔的事实,您可以获得文档的整个文本,然后将其拆分为一个“单词”数组

一旦你知道第n个单词是什么,你就可以使用你已经拥有的代码来搜索/查找文档中的范围


如果单词可能出现不止一次,那么您可能需要扩展“拆分”的使用方式,以获取周围的单词,从而使搜索更加准确。

快速:您可以使用range.split()方法进行此操作。(即,这适用于搜索结果、正文、段落、内容控制等)假设您希望获得段落中的第四个单词,这就是您的操作方式:

异步函数运行(){
等待Word.run(异步(上下文)=>{
//该方法返回一个包含拆分范围的数组。。。
//第一个参数是要使用的分隔符数组,在本例中是空格。如果需要,可以添加更多分隔符。
让myWords=context.document.body.parations.getFirst().split([“”],true,true);
myWords.load();
wait context.sync();
if(myWords.items.length>=3)//仅仅因为我想要第四个单词:)
log(myWords.items[3].text);
});

}
您的问题不太清楚。。。你的意思是你想要,例如,搜索词的第四个实例吗?例如“我的文档中有一个词”这里
2nd
word是“have”,因此使用该
2
我需要定位该词,然后需要处理该词,如突出显示、选择等@Cindymister你的问题得到回答了吗?我正在做一些事情,需要检查@Cindymeester我们有一些范围。单词Cindy,检查下面我的答案。@JuanBalmori啊,我花了一点时间才看到区别——它可以用于范围,而不仅仅是文本。这很有帮助:-)
await Word.run(async (context) => {
    let ordinalWord = 2;
    let rng = context.document.body;
    rng.load("text");
    await context.sync();
    let sContent = rng.text;
    let words = sContent.split(" ", ordinalWord);
    console.log(words[ordinalWord - 1]);
});