0
我正在开发一个office js文字插件。如何从选择中选择多个段落
假设我在word文档中有三个段落。用户从第一段中间到第二段中间选择文本。当点击我的插件中的按钮时,系统应该自动选择从第1段开始到第2段结束的文本。用户应该选择完整的段落而不是部分段落。如果他们这样做,系统应该自动选择整个段落。
我需要知道我们是否有选择重新定义officejs范围或其他任何方式来实现我的要求。
在此先感谢。
我正在开发一个office js文字插件。如何从选择中选择多个段落
假设我在word文档中有三个段落。用户从第一段中间到第二段中间选择文本。当点击我的插件中的按钮时,系统应该自动选择从第1段开始到第2段结束的文本。用户应该选择完整的段落而不是部分段落。如果他们这样做,系统应该自动选择整个段落。
我需要知道我们是否有选择重新定义officejs范围或其他任何方式来实现我的要求。
在此先感谢。
有趣的问题。如果使用范围的段落集合,则可以使其工作,在此情况下为当前所选范围。段落集合(以及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);
}
})
});
下面是一个例子,你怎么能选择2段使用expandTo并选择...
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,
我需要知道如何在上面发布的场景中选择两个段落。在Interop中,我们可以重新定义范围并选择它。我不确定在OfficeJS中是否有办法实现这一点 **编辑:**我注意到您已经建议在http://stackoverflow.com/questions/39279377中使用expandTo方法。你能告诉我如何在我的场景中扩展范围(用户选择部分段落[从第一段中间开始到第二段中段],并以编程方式选择整段)? – CSS
你可以使用paragraph.getRange()来获得每个段落的范围,然后你可以使用range.expandTo()来扩展它,最后一次你扩大范围,你可以使用range.Select() –
这就是我也认为,这里是我到目前为止的代码。 https://jsfiddle.net/bkuzmdsb/#&togetherjs=7uFHoTVdw5 – CSS