このようなシートから
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>
 | 


