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



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

  • 具有多个ContentControls的文档
  • 所有这些都有相同的标签,通过该标签可以找到它们并对其进行处理

没有问题。但是,有没有一种方法可以通过使用Office.js中的某些内容来知道文档中是否有两个或多个ContentControls相邻?我所说的"相邻"是指:它们之间没有其他文本、对象等。我这么问是因为我正在尝试合并这样的ContentControls。这不是问题,但认识到它们可能是问题

这是通过Office.js实现的吗?还是我需要编写自己的自定义逻辑?

Word对象模型中没有任何内容可以告诉您这一点。但是您可以使用compareLocationWith方法从内容控件的Range计算它。例如:以下代码段比较文档中第一个和第二个内容控件的位置。如果第一个紧跟在第二个之前,则该方法返回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);
}

最新更新