質問: HtmlService.createTemplateFromFile('EntryForm'); return html.evaluate(); } ``` ### HTML ``` キャラNo.(必須) キャラクター名 タイプ A B C ``` ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 自己解決しました。 最初はフォームのテキストボックスに修正をかけたいデータのIDを入力し、 そのIDを参照してスプレッドシートの行数を特定して値を読み込み フォームに表示させればいいのかな?と考えていましたが それだと、まず番号を入力→読込ボタン押す→からの入力、という手間が増える仕様になるのでやめました。 フォームへのリンクを置く個別データページにURLパラメーター(ID)を付与して その番号を見て、スプレッドシートから指定の入力済みのデータをひっぱり フォームの初期値としてセットする、という仕様にしました。 修正かけたい個別ページからアクセスすれば入力済みの値がセットされたフォームが出るので、 そこで修正部分だけ編集して送信すれば、セルが真っ白に飛ぶこともなくなりました。 質問の仕方がふわっとしすぎてすみませんでした。。 やりたいことは一言で言うと、DBとDB入力のためのGUIを作りたかったのです。 知らないことが多すぎると、ピンポイントな質問もできません。 GASからHTMLへ複数セルの値を受け渡すのはjsonがよきかな、と聞いたのですが やり方が悪かったのかエラーの嵐で断念しました。。 最終的にこういうコードにしました。 GAS function doGet(e) { var html = HtmlService.createTemplateFromFile('EntryForm'); var cid = e.parameter.cid; //URLパラメーターからID取得 var rowNum = parseInt(cid)+1; //idを行番号に変換 var mySheet =SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/SHEETID/edit#gid=0"); var range = mySheet.getRange("C"+rowNum+":AD"+rowNum); //データの入っているC~AD列の1行をrangeとする var defSet = range.getValues(); html.defSet = defSet; html.cid =cid; return html.evaluate(); } HTML内のjavascript