自分用メモ・スプレッドシートの内容を出力する
スプレッドシートに書き込んだ内容をcsv(もしくはjs形式)で出力する.
あまりに汚くて読みにくいうえに非効率的なので後で書き直す.
//main.gs function doGet(request) { return HtmlService.createTemplateFromFile('index.html').evaluate() .setSandboxMode(HtmlService.SandboxMode.IFRAME); } function include(filename) { return HtmlService.createHtmlOutputFromFile(filename) .getContent(); } function get(s){ var form = SpreadsheetApp.openById("スプレッドシートのid").getSheetByName("シート名"); var LastRow = form.getLastRow(); var LastColumn = form.getLastColumn(); var sc = s[0]; var flg = s[2]; var dc = s[3]; if(flg)s = "var "+s[1]+"=[\n"; else s = ""; for(var i=1;i<=LastRow;i++){ if(i>1 && flg)s+=sc; if(flg)s+="["; for(var j=1;j<=LastColumn;j++){ if(j>1)s+=sc; if(dc)s+="\""; s+=form.getRange(i, j).getValue(); if(dc)s+="\""; } if(flg)s+="]"; s+="\n"; } if(flg)s+="];" return s; }
<!-- index.html --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <base target="_top"> <script> function btn(){ var form = document.forms.fm; var obj = [fm.sc.value,fm.an.value,fm.flg.checked, fm.dc.checked]; google.script.run.withSuccessHandler(success).withFailureHandler(fail).get(obj); function success(obj){ form.ta.value=obj; } function fail(){ form.ta.value="失敗"; } } function DL(){ var form = document.forms.fm; var content = form.ta.value; var blob = new Blob([ content ], { "type" : "text/plain" }); if(window.navigator.msSaveBlob){ window.navigator.msSaveBlob(blob, "test.txt"); window.navigator.msSaveOrOpenBlob(blob, "test.txt"); } else{ document.getElementById("download").href = window.URL.createObjectURL(blob); } } </script> </head> <body> <h1>CSV出力器</h1> <input type="button" value="押してね" onclick="btn()"/> <form name='fm'> 配列名(js形式出力用)<input name="an" type='text' value='data' style='width: 30px;'/><br> 区切り文字<input name="sc" type='text' value=',' style='width: 30px;'/><br> jsの配列形式で出力<input name="flg" type='checkbox'/><br> ""でくくって出力<input name="dc" type='checkbox'/><br> <textarea name='ta' rows="5" cols="40"> ここにファイルが生まれるハズ </textarea><br> </form> <a id="download" href="#" download="download.csv" onclick="DL()">ダウンロード</a> </body> </html>