#17 GAS入門−テンプレートに値を埋め込む

GAS

前回#16ではindexファイルに直接値を記入しましたが、テンプレートのプロパティとして指定し、コード.jsからセットできる様にしてみます。

ここでは、まずtitleプロパティを「MyTaskApp」としてみます。

そこで、特殊な記号を使用します。

<?= プロパティ名 ?>

<h1><?= title ?></h1>

こうなりますね。

次に、コード.js側で

template.title = ‘MyTaskApp’;

とします。

template.title = 'MyTaskApp';

結果を見てみます。

次はTask側です。

template.tasks ですが、少し複雑なので別途関数にします。

template.tasks = getTasks();

とします。

function doGet() {
  var template = HtmlService.createTemplateFromFile('index');
  template.title = 'MyTaskApp';
  template.tasks = getTasks();

  return template.evaluate();
}

 

ではTaskを取得する関数を作り込んでいきます。

function gatTasks() {

}

関数の中身ですが、

まずシートの取得です。

var sheet = SpreadsheetApp.getActiveSheet();

ですね。

function gatTasks() {
   var sheet = SpreadsheetApp.getActiveSheet();

}

シートの中身の取得は

getRange(row, column, numRows, numColumns)

を使います。

row・・・・行は2行目(2)

column・・・列は2列目 (2)

numRows・・・行数は最後の行までの行数から1行分(タイトル行)引きます。
sheet.getLastRow() – 1

numColumns・・・列数は1です。

sheet.getRange(2, 2, sheet.getLastRow()-1, 1)

さらにgetValues()とします。

sheet.getRange(2, 2, sheet.getLastRow()-1, 1).getValues();

return で返します。

以下の様になりました。

function getTasks() {
  var sheet = SpreadsheetApp.getActiveSheet();
  return sheet.getRange(2, 2, sheet.getLastRow()-1, 1).getValues();
}

 

ループ構造を使い埋め込んでいきます。

for文を使います

定義は以下ですね。

for (  初期値;  条件式;  増減値  ) {
  // 繰り返す処理を書く
}

今回はこうなります。

for ( var i = 0; i < tasks.length; i++  ) {
  tasks(i);
}

制御構造を埋め込んでいきますので<? ?>を使います。<?= ?>ではありません。注意してください。

では結果を見てみます。

今回は少し飛ばしすぎましたかね?
for文など新しい知識が入ってきました。
おいおい説明を追加していくつもりです。ご勘弁ください。

コメント