2

私はこれを乗り越えるために何日も費やしてきましたが、運がありません。

ドロップダウンリストが必要なGoogleスクリプトのhtmlページがあります-これは次のように達成されます

<div>
<select name="source">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
</div>

手動入力の代わりに、スプレッドシートからオプション フィールドをキャプチャする必要があります。列の範囲が増減すると、それに応じてドロップダウン リストが更新されます。

回避策を教えてください...

よろしく、

4

3 に答える 3

2

配列オブジェクト自体ではなく配列内の要素を表示するには、Scriptlet タグ内に DATA 配列を含める必要があります。2 次元配列を使用する必要はありません。正しい構文は次のとおりです。

<?
 var sheet   =  SpreadsheetApp.openById(0Avt7ejriwlxudGZfV2xJUGJZLXktQ2RhQU1ugtgtaXc").getSheetByName("MRF Tab");
  var lastRow = sheet.getLastRow();  
  var myRange = sheet.getRange("C3:C"+lastRow); 
  var data    = myRange.getValues();
  ?>
<div>
  <select>
    <? for (var i = 0; i < data.length; ++i) { ?>
      <option><?!= data[i] ?></option>
    <? } ?>
  </select>
</div>

そして、テンプレート内にデータ取得コードhtml UIコードを混在させるのは本当に悪い考えです。別の gsファイルとhtml ファイルを使用し、 Mogsdadが提案した最適化を適用する必要があります。

于 2013-07-23T10:33:20.973 に答える