自分用メモ・GAS
久しぶりに書こうとしてすっかり忘れていたので,次忘れたときのためにまとめておく.
簡易なサーバとして使えなくもない.
スプレッドシート基本操作
高度な操作は多すぎるのでパス.
//フォーム選択 var form = SpreadsheetApp.openById("ここにid").getSheetByName("ここにシート名"); //フォーム(シート)の(y,x)にアクセス //値を得る form.getRange(y,x).getValue(); //値を書き込む form.getRange(y,x).setValue(114514); //フォームの最終行 var LastRow = form.getLastRow();
データを取ってくる
AOJからユーザーデータを取ってくるサンプル.
ログは[表示]->[ログ]もしくは[Ctrl+Enter]で確認できる.
function aoj(){ //ユーザーid var id = "kagasan"; //アクセス先 var url = "http://judge.u-aizu.ac.jp/onlinejudge/webservice/user?id="+id; //取ってくる var response = UrlFetchApp.fetch(url); //パース var xml = XmlService.parse(response.getContentText()); //ログに表示 Logger.log(xml.getRootElement().getChild("name").getText()); Logger.log(xml.getRootElement().getChild("status") .getChild("solved").getText()); }
ウェブページを表示する
ドライブ他Googleの機能といい感じに連携したウェブページができて便利(な気がする).
ボタンを押すとプロンプトが出て,入力した内容がスプレッドシートに記入されるサンプル.
//main.gs function doGet(request) { return HtmlService.createTemplateFromFile('index.html').evaluate() .setSandboxMode(HtmlService.SandboxMode.IFRAME); } function include(filename) { return HtmlService.createHtmlOutputFromFile(filename) .getContent(); } function logwrite(s){ var form = SpreadsheetApp.openById("ここにスプレッドシートのid").getSheetByName("ここにシートの名前"); form.getRange(1,1).setValue(s); return s="保存しました."; }
<!-- index.html --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <base target="_top"> </head> <?!= include('index.css.html'); ?> <?!= include('index.js.html'); ?> <body> <div id = "txt"></div> <input type="button" value="押してね" onclick="btn()"/> </body> </html>
<!-- index.css.html --> <style> #txt{ color:red; } </style>
<!-- index.js.html --> <script> function btn(){ var obj = prompt("適当に入力してください.",""); google.script.run.withSuccessHandler(success).withFailureHandler(fail).logwrite(obj); function success(obj){ document.getElementById("txt").innerHTML=obj; } function fail(){ document.getElementById("txt").innerHTML="失敗しました."; } } </script>