Office.js识别文档中的ContentControl位置

时间:2018-08-06 10:02:28

标签: javascript ms-word office-js

我不确定这是否可以立即使用,但这就是我所拥有的:

  • 具有多个ContentControls的文档
  • 所有标签都有相同的标签,可用于查找和使用它们

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

是否可以通过Office.js进行操作,还是需要编写自己的自定义逻辑?

1 个答案:

答案 0 :(得分:2)

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);
    }