Javascript googleスプレッドシートを全取得
googleスプレッドシートの、存在するシート全て取得する
プログラムを書いてみたが、$.ajaxで複数ファイル取得した後の
処理にどう引き継げばいいのか分からない。
タイマー仕掛けて$.ajaxの複数ファイルコールバック処理の
完了を待った後、次の処理をスタートするという形になるんだろうか。
。。うーむ。
↓参考にさせていただいたサイト
[CSV解析]
http://liosk.blog103.fc2.com/blog-entry-75.html
カラム内の改行にも対応したCSV解析
[ユニーク配列取得]
http://javascripter.hatenablog.com/entry/20080730/1217413682
※今回のソースには、入ってないけど勉強させてもらいました。
//CSV解析 function parseCSV(text, delim) { if (!delim) delim = ','; var tokenizer = new RegExp(delim + '|\r?\n|[^' + delim + '"\r\n][^' + delim + '\r\n]*|"(?:[^"]|"")*"', 'g'); var record = 0, field = 0, data = '', qq = /""/g; text.replace(/\r?\n$/, '').replace(tokenizer, function(token) { switch (token) { case delim: data[record][++field] = ''; break; case '\n': case '\r\n': data[++record] = ['']; field = 0; break; default: data[record][field] = (token.charAt(0) != '"') ? token : token.slice(1, -1).replace(qq, '"'); } }); return data; } templatelist = { template:[], //スプレッドシートの取得 getspreadsheet:function(gid){ var gspreadsheetUrl = "https://docs.google.com/spreadsheet/pub?key=キー&single=true&output=csv&gid="; $.ajax({ url: gspreadsheetUrl + gid, type: 'GET', dataType: 'text', cache: false }) .done(function( data ) { var csv = parseCSV(data); console.log(csv); //次のシートを読み込む gid++; templatelist.getspreadsheet(gid); }) .fail(function( data ) { console.log("失敗:"); //処理がここから続く }); } }; //googleスプレッドシート取得 templatelist.getspreadsheet(0);