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