LANG SELRCT

コードを書く場所についてはこちら

2019年2月13日水曜日

シートから1行目と2行目以降のデータを分けて読み込みたい


このようなシートから


1行目とデータを分けて取得してアラートに出すところまで

を実現するコード


コード.gs
function doGet() {
  return HtmlService.createTemplateFromFile('index').evaluate();
}

function getData_gs() {
  var ss_url = 'https://docs.google.com/spreadsheets/d/1rrKSyydtE7WxOEqnDoixhc0_KYEblWxcTVsuZbavGdE/edit#gid=0';
  var ss = SpreadsheetApp.openByUrl(ss_url);
  var sheet = ss.getSheets()[0];
  var headers = getrow1Values(sheet);  
  var lastRow = sheet.getLastRow();
  var lastCol = sheet.getLastColumn();
  var range = sheet.getRange(2, 1, lastRow, lastCol);
  var values = range.getValues();
  var data = [headers, values];
  return data;
}

function getrow1Values(sheet) {
  var lastCol = sheet.getLastColumn();
  var range = sheet.getRange(1, 1, 1, lastCol);
  var row1Values = range.getValues();
  return row1Values;
}
意訳
この機能がやること
指定したHTMLファイルを表示する


この機能がやること
スプレッドシートのURL
スプレッドシートを開いて
先頭のシートを取得して
一行目の値を取得して
データが入力されている最終行を取得して
データが入力されている最終列を取得して
2行目以降の最終行列の範囲を指定して
その値を取得して
配列に入れて
返す


この機能がやること
データが入力されている最終列を取得して
1行目に入力されている値をすべて取得して
返す




index.html
<!DOCTYPE html>
<html>
  <body>
  <button id="bt">getData</button>
    <script>
    
  document.getElementById("bt").onclick = getData;

  function getData() {
    google.script.run
      .withFailureHandler(onFailure)
      .withSuccessHandler(onSuccess)
      .getData_gs();
  }

  function onSuccess(result) {
    alert(result);
  }

  function onFailure(e) {
    alert([e.message, e.stack]);
  }    
    </script>
  </body>
</html>



関連記事

シートの1行目(ヘッダ行)の値を取得する
http://www.pre-practice.net/2017/11/blog-post_23.html