如何从选择中选择多个段落

时间:2016-12-01 14:44:58

标签: typescript office-js

我正在开发一个办公室js word addin。

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

有趣的问题。如果您使用范围的段落集合(在这种情况下是当前选定的范围),则可以使其工作。段落集合(以及Word js API中的所有集合)包括完整的段落,而不仅仅是所选的内容。

请运行此示例,您将看到如何从部分选择中打印完整段落(如您的问题所述)

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

希望这能让你走上正确的道路! -Juan,