Google Apps ScriptのHtmlServiceで
index.htmlに表示するHTMLをスプレッドシートから読み込みたい
ということがやりたくて書いたコードです。
今回やること
表示したいHTMLをA1に用意しておく
(今回はテキストボックスを表示するだけ)
コード.gsに returnHtml() という関数を用意して
スプレッドシートのA1のデータを取得して返す
index.htmlの getHtml() でそれを実行して
返ってきたHTMLを innerHTML で表示する
コード.gs
function doGet(e) { return HtmlService.createHtmlOutputFromFile("index"); } function returnHtmlFromSheet(){ var ssUrl = 'https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0'; var sheet = SpreadsheetApp.openByUrl(ssUrl); var range = sheet.getRange('A1'); var value = range.getValue(); return value; } |
index.html
<!DOCTYPE html> <html> <body> <div id="mainDiv"></div> <script> getHtml(); function getHtml() { google.script.run .withFailureHandler(onFailure) .withSuccessHandler(gotHtml) .returnHtmlFromSheet(); } function gotHtml(result) { document.getElementById('mainDiv').innerHTML = result; } function onFailure(e) { alert([e.message, e.stack]); } </script> </body> </html> |