如何 select 来自 selection 的多个段落

How to select multiple paragraph from selection

我正在开发一个office js word插件。

假设我的 word 文档中有三个段落。用户正在 select 从第 1 段中间到第 2 段中间阅读文本。单击我的插件中的按钮时,系统应自动 select 从第 1 段开始到第 2 段结束的文本。用户应该 select 完整的段落而不是部分段落。如果他们这样做,系统应该自动 select 整个段落。

我需要知道我们是否可以选择在 officejs 中重新定义一个范围或任何其他方式来实现我的要求。

提前致谢。

有趣的问题。如果您使用范围的段落集合,则可以使这项工作正常进行,在本例中为当前 selected 范围。段落集合(通常是 Word js API 中的所有集合)包括完整的段落,而不仅仅是 selected.

请 运行 这个例子你会看到完整的段落是如何从部分 selection 中打印出来的(如你的问题所述)

Word.run(function(context) {
        // this will return the full paragraphs within the selection:
        var myParagraphs = context.document.getSelection().paragraphs;
        context.load(myParagraphs);

        return context.sync()

        .then(function(){
            for(var i=0; i< myParagraphs.items.length; i++){
                // here you will get the full paragraphs, not just what the user selected.
                console.log("this is full  paragraph:" + (i + 1) + ":" + myParagraphs.items[i].text);

            }
        })
    });

这是一个示例,说明如何使用 expandTo 和 select...select 2 个段落...

Word.run(function (context) {
    var pars = context.document.getSelection().paragraphs;
    pars.load();

    return context.sync().then(function () {
    pars.items[0].getRange().expandTo(pars.items[pars.items.length - 1].getRange()).select(); 
     
      return context.sync()

    }).catch(function (error) {
      console.log(error.message);
    });
})

希望这能让您走上正确的道路! -胡安,