GASでユーザーフォームのようなものを作りたいのですが、HTML側に配列が渡せません。
流れとしては、HTMLの内容をGASで受け取り、GAS側でHTML側の文字列を置換したのちユーザーフォーム出現といった流れです。
この状態で実行すると、セレクトボックスは出現するのですがオプションが追加されません。logを見て見ると置換はできているのですが、dを認識していないように思います。どなたか解決策、またはもっといい方法ありましたらご教授お願いします。
GAS
1function main() {//main.gs UserForm出す用 2 var app = SpreadsheetApp; 3 var html = HtmlService.createHtmlOutputFromFile('UserForm');//htmlの内容を文字列として取得 4 var content = html.getContent().replace(/%adasu\(\)%/,adasu(1,1,4,1));//html内の%adasu()%という文字列を置換 5Logger.log(content); 6 app.getActiveSpreadsheet().show(HtmlService.createHtmlOutput(content));//ユーザーフォーム出現 7} 8 9function adasu(starty,startx,y,x){ 10 var thissheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート1"); 11 var a=thissheet.getRange(starty,startx,y,x).getValues(); 12 return a;//セルA1からA4にはそれぞれA,B,C,Dと入っておりa=[[A],[B],[C],[D]] 13} 14
html
1 2UserForm.html 3<!DOCTYPE html> 4<html lang="ja"> 5 <head> 6 <base target="_top"> 7 </head> 8 9 <body> 10 11 <select name="ptype"> 12 <script type="text/javascript">//セレクトボックス 13 var d=[%adasu()%]; 14 for(var i=0;i<4;i++){ 15 document.writeln('<option value="'+ d[i] + '">' + d[i] + '</option>'); 16 } 17 </script> 18 </select> 19 20 </body> 21</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/03 09:30