2017-11-02 9 views
0

私は、パワーポイントスライドを構築するjavascriptプログラムで作業しています。私は配列に要素を動的に追加する問題に取り組んでいます(テキストボックス内のテキストになります)。私は明示的にテキストをコーディングする場合は、すべての作品...このコードは正常に動作...Javascript - 配列への追加の問題

slide.addText(
     [ { text: "Bob0", options: {align:'left', color:'757575', font_face: 'Calibri', font_size:9}} , 
      { text: "Bob1", options: {align:'left', color:'757575', font_face: 'Calibri', font_size:9}} , 
      { text: "Bob2", options: {align:'left', color:'757575', font_face: 'Calibri', font_size:9}} , 
      { text: "Bob3", options: {align:'left', color:'757575', font_face: 'Calibri', font_size:9}} , 
      { text: "Bob4", options: {align:'left', color:'757575', font_face: 'Calibri', font_size:9}}    
     ],  
     {shape:pptx.shapes.ROUNDED_RECTANGLE, x:0.33, y:2,w:1.25,h:1.33, line:'757575', line_size:0.5, fill:'FFFFFF', valign:'top', color:'FFFFFF', font_face:'Calibri Light', font_size:10} 
    ); 

このコードを印刷丸い四角形内のテキストの5行(Bob0 ... Bob4)。私がする必要があるのは、これらの行を動的に構築することです。 1行しかないかもしれませんが、30文字あるかもしれませんが、すべて同じ形式ですが、TEXT属性の違いが異なります。だから私は動的に配列を構築してアクセスしようとします。

var arrCRM=[]; 
.. 
     for (var i = 0; i < 5; i++) { 
      var thisRow = {}; 
      thisRow["text"] = "Bob" + i; 
      thisRow["options"] = {align:'left', color:'757575', font_face: 'Calibri', font_size:9}; 
      arrCRM.push(thisRow); 
     }; //end of for loop 

これは私が合理的に近くなるようにします。私は今、addTextルーチンにarrCRMを置くことができる必要があります。

slide.addText(
     [ arrCRM 
     ],  
     {shape:pptx.shapes.ROUNDED_RECTANGLE, x:0.33, y:2,w:1.25,h:1.33, line:'757575', line_size:0.5, fill:'FFFFFF', valign:'top', color:'FFFFFF', font_face:'Calibri Light', font_size:10} 
    ); 

これは私のコードの後半に全く関係のないエラーを表示するので、私は本当に間違っていることを知っています。しかしこれは、どのように私は、「プラグイン」か配列全体を、配列の要素数が異なりますので、... ...

slide.addText(
     [ arrCRM[0], 
      arrCRM[1], 
      arrCRM[2], 
      arrCRM[3], 
      arrCRM[4] 
     ],  
     {shape:pptx.shapes.ROUNDED_RECTANGLE, x:0.33, y:2,w:1.25,h:1.33, line:'757575', line_size:0.5, fill:'FFFFFF', valign:'top', color:'FFFFFF', font_face:'Calibri Light', font_size:10} 
    ); 

に動作しますか?

答えて

1

あなたはaddTextにそれを送信し、その後新しい配列内の単一の項目としてarrCRMの値を加算しているaddText([ arrCRM ])を呼んでいます。

簡略化すると、これは、[ 1, 2, 3, 4 ]が期待されるときに[[ 1, 2, 3, 4 ]]を送信するようなものです。

slide.addText(arrCRM, { 
    shape: pptx.shapes.ROUNDED_RECTANGLE, 
    x: 0.33, 
    y: 2, 
    w: 1.25, 
    h: 1.33, 
    line: '757575', 
    line_size: 0.5, 
    fill: 'FFFFFF', 
    valign: 'top', 
    color: 'FFFFFF', 
    font_face: 'Calibri Light', 
    font_size: 10 
}); 
+0

それだった...ありがとう:あなたはおそらく探しているもの

は直接あなたの配列で機能を呼び出すことです。 – user1009073

関連する問題