2016-12-01 27 views
0

私はoffice js word addinを開発しています。選択から複数の段落を選択する方法

私のワード文書には3つの段落があります。ユーザは、第1段落の真中から第2段落の真中までのテキストを選択している。私のアドインでボタンをクリックすると、システムは自動的に第1段落から第2段落の終わりまでのテキストを選択するはずです。ユーザーは、完全な段落を選択し、部分段落は選択しないでください。もし彼らがシステムを自動的に段落全体を選択する必要があります。

私はofficejsで範囲を再定義するかどうか、または私の要件を達成するために他の方法があるかどうかを知る必要があります。

ありがとうございます。

答えて

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、

+0

上記のシナリオで両方の段落を選択する方法を知っておく必要があります。 Interopでは、範囲を再定義して選択することができます。 OfficeJSでこれを達成する方法があるかどうかわからない **編集:** http://stackoverflow.com/questions/39279377でexpandToメソッドの使用を提案しています。あなたは私のシナリオで範囲を拡大する方法を教えてください(ユーザは部分パラグラフを選択しています(第1パラの中間から第2パラの中間まで、プログラム的に段落全体を選択する必要があります)? – CSS

+0

paragraph.getRange()を使用して各段落の範囲を取得し、range.expandTo()を使用して展開し、最後にrange.Select()を使用して範囲を拡張すると、 –

+0

私はこれも考えています私がこれまで持っていたコード。 https://jsfiddle.net/bkuzmdsb/#&togetherjs=7uFHoTVdw5 – CSS

関連する問題