现在,我通过使用搜索词来查找Word文档中的词
context.document.body.search(dict, { ignorePunct: true, matchCase: true, matchWholeWord: true });`
但是我想通过单词在Word文档中的顺序位置来查找单词。我找不到确切的nth
字。
有可能这样做吗?
答案 0 :(得分:1)
快速:您可以为此使用range.split()方法。 (即,这适用于searchResult,主体,段落,内容控件等。)假设您要获取段落中的第4个字,这是您的操作方式:
async function run() {
await Word.run(async (context) => {
//the method returns an array with the split ranges...
// the first parameter is an array of the delimiters you want to use, in this case the space. you can add more if needed.
let myWords = context.document.body.paragraphs.getFirst().split([" "], true, true);
myWords.load();
await context.sync();
if (myWords.items.length >= 3) // just because i want the 4th word :)
console.log(myWords.items[3].text);
});
}
,如果您想在脚本实验室中使用它,这里是the gist,则可以导入。
答案 1 :(得分:0)
(现在)Office JS API还没有与Word COM对象Words
等效,后者可让您通过索引值在给定范围内指定“单词”。考虑到单词之间用空格隔开的事实,您可以获取文档的整个文本,然后将其拆分为“单词”数组。
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]);
});
一旦您知道nth
这个词是什么,就可以使用已经在代码中搜索/查找范围的代码。
如果单词出现不止一次,那么您可能需要扩展“ split”的使用方式,以获取周围的单词,从而使搜索更加准确。