我不确定这是开箱即用的,但这就是我所拥有的:


具有多个ContentControls的文档
它们都有相同的标签,可以通过它们找到并使用它们


那里没有问题。但是,是否有一种方法可以知道,如果在Office.js中使用两个或更多个ContentControl,则在Office.js中使用它们吗? “彼此相邻”的意思是:它们之间没有其他文本,对象等。我问是因为我正在尝试合并这样的ContentControls。这不是问题,但是认识到它们可能是一个问题。

通过Office.js是否可以实现?还是需要编写自己的自定义逻辑?

最佳答案

Word对象模型中没有内置内容可以告诉您这一点。但是您可以使用Range方法从内容控件的compareLocationWith中进行计算。例如:以下代码段比较了第一和第二内容控件在文档中的位置。如果第一个在第二个之前,则该方法返回AdjacentBefore,否则它将返回Before

    var ccs = context.document.body.contentControls;
    ccs.load("items");
    await context.sync();
    var nrCCs = ccs.items.length;

    if (nrCCs >= 2) {
      var cc1 = ccs.items[0];
      var cc2 = ccs.items[1];
      var rng1 = cc1.getRange("Whole");
      var rng2 = cc2.getRange("Whole");
      var sCompareResult = rng1.compareLocationWith(rng2);
      await context.sync();
      console.log(sCompareResult.value);
    }

10-08 04:49