LoginSignup
2
4

More than 1 year has passed since last update.

【GAS→html 値渡す】①スプレッドシート→htmlへ値受け渡し(ロード、テンプレ読み込み時)

Last updated at Posted at 2021-05-29

前回からの続きです。

前提・対象レベルとか、その他記事をまとめております。

次のページ
②スプレッドシート→htmlに渡した値をテーブル形式に(jquery)

やること

GASで作成したWebページを開く際、

  1. スプレッドシート→GAS(サーバー側、コード.gs)で値取得
  2. GAS→javascript(クライアント側、index.html)に値受け渡し
  3. javascript→htmlの要素へ値を渡して表示

スプレッドシート

A B C
1 地域 都道府県 県庁所在地
2 首都圏 東京 東京
3 東海 愛知 名古屋
4 東北 宮城 仙台
5 関西 兵庫県 神戸
6 甲信越 山梨 甲府
スクリーンショット 2021-05-29 14.41.39.png

結果

Webページ↓

スクリーンショット 2021-05-29 14.40.24.png

実際のコード

GASコード(スプシ→GASで値取得、保持)

コード.gs

function valsget() {
  //GASに紐づくスプシ呼び出し→シート名からシート取得  ※シート名相違注意
  let ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("テスト");

 //範囲を取得→getvaluesで値取得、二次元配列に格納
 let vals = ss.getDataRange().getValues();

  Logger.log(vals); 
  //[['地域','都道府県','県庁所在地'],['首都圏','東京','東京'],['東海','愛知','名古屋'],〜〜]をログで出力  

  return vals;
}

GASコード(htmlテンプレートの作成、出力)

コード.gs
//doGet関数を使う

function doGet(){
  let htmloutput = HtmlService.createTemplateFromFile('index').evaluate();
 //htmlテンプレートを作って再評価。再評価でjsの関数などを読み込み実行

  htmloutput.setTitle('CRUDテスト');
  return htmloutput;
  //htmlテンプレート返す

}


【解説】GAS関数(サーバー)をjavascript(クライアント)で呼び出すメソッド

  google.script.run.withSuccessHandler(コールバック関数クライアント側js).GAS関数();

/*
  1.GAS関数をまず実行
  2.GASで取得した戻り値 → コールバック関数に戻り値を渡す 
  3.コールバック関数=クライアント側jsを実行する
*/

index.htmlを作成→html、クライアント側javascriptをかく

index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>  
    <p id="test"></p>


  </body>
</html>



<script>
 
 //webページの読み込み時に実行
  window.onload = function(){

    google.script.run.withSuccessHandler(function(dt){ //valsgetの取得値をdtに渡す
      let testEl = document.getElementById('test');  //要素p取得
      testEl.innerHTML = dt;  //要素pのテキストにdtを入れる
      }).valsget();
  }  
</script>  


2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4