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