Ms word Office.js API是否支持多个范围选择?

Ms word Office.js API是否支持多个范围选择?,ms-word,selection,office-js,Ms Word,Selection,Office Js,我需要通过Office.js API同时选择多个范围,就像在MSWord UI中按住CTRL键并突出显示多个不连续的段落一样,如下面的屏幕截图: 这种尝试不起作用。它不是突出显示文档中单词“the”的前两个实例,而是突出显示第一个实例,然后再突出显示第二个实例: Word.run(function (context) { // Set up the search options. var options = Word.SearchOptions.newObje

我需要通过Office.js API同时选择多个范围,就像在MSWord UI中按住CTRL键并突出显示多个不连续的段落一样,如下面的屏幕截图:

这种尝试不起作用。它不是突出显示文档中单词“the”的前两个实例,而是突出显示第一个实例,然后再突出显示第二个实例:

   Word.run(function (context) {
       // Set up the search options.
       var options = Word.SearchOptions.newObject(context);
       options.matchCase = false;
       options.ignoreSpace = true;
       options.ignorePunct = true;
       options.matchWildcards = true;
       var searchText = "the";
       var searchResults = context.document.body.search(searchText, options);
       context.load(searchResults);
       return context.sync().then(function () {
           searchResults.items[0].select();
           searchResults.items[1].select();
       });
   });

不,没有一个API支持多个选择。即使用户能够这样做,使用Ctrl+select也是相对较新的。该功能从未被转移到API中


API能做的最接近的事情就是突出显示(或格式化)感兴趣的
范围
对象。Word对话框中有这样的功能,COMAPI也可以使用,但我没有找到与JS API等效的功能…

为了证实Cindy提到的,Office.JS中不仅不支持非连续选择(对于Word,我们在Excel中也支持非连续选择)但在其他平台(如Word Online)上也不支持手动操作。

这是可能的。 在使用绑定和Office.context.document.goToByIdAsync()时,我遇到了一个奇怪的结果。使用此函数,您可以导航到任何绑定,而无需调用Word.Run(),这很好。有一个名为SelectionMode的选项,默认情况下,该选项不选择绑定,但可以设置为选择绑定的内容。奇怪的是,以这种方式选择内容并没有取消选择当前选择!这不是我想要的结果,fwiw;对我来说,这是一个讨厌的要求我“取消选择”任何当前选择之前,我使用goToByIdAsync。但是您可以使用它来选择多个范围,方法是将它们包装在ContentControl中,然后在它们上创建绑定,然后在每个绑定上调用goToByIdAsync(SelectionMode设置为select)。我还没有测试过这个

编辑 实际上,上一个选择是取消选择的,但它仍然高亮显示,就好像它仍然被选中一样。这似乎是一个显示错误