●Spreadsheetsのデータを簡単にJavaScriptで読み込む
Google Docsのスプレッドシートにあるデータを簡単に読み込むJavaScriptを作りました。
これで、サーバサイドのプログラムをまったく使わずにJavaScirptだけでデータなりを読み込んで表示することが簡単になります。
あと、Spreadsheets自体はExcelなど多様のフォーマットに対応してますので、あまりWebの知識がない人でも簡単にデータを保持してサイトで表示することができるようになります。
読み込み専用
http://wakasa.org/project/jquery/gspreadsheets.js
Postも対応
http://wakasa.org/project/jquery/jquery.gspreadsheets.js
※非同期通信部分でjQueryを利用しているので、jQueryのプラグインになります
使い方は以下の感じで。
- 取得 -
※jQuery版の例なので、単体版の場合は$.を削除してください。
$.gspreadsheets.load("[Spreadsheetsのkey]","[シート名]",[読み込んだデータを返す時のfunction]);
まずSpreadsheetsの設定で右上にある「共有」から「ウェブページとして公開」を選んで公開します。
$.gspreadsheets.load("pUueo43_joGIIz68KkRF-Tw","default",getDataEnd);
とした場合に
http://spreadsheets.google.com/ccc?key=pUueo43_joGIIz68KkRF-Tw&hl=ja
のdefault指定したシートを読み込んで、getDataEndに返します。
シート名は、通常1番目がdefaultになりますが公開設定によりいろいろかわります。
シート番号に関しては1シート目は[od6]、2シート目は[od7]....というルールで名前がつくようです。どうして6スタートなのかは不明です。
このシート番号は「ウェブページとして公開」の「公開の詳細設定」で見る事ができます。
返ってくる内容は1列目に名前を付けたものがkeyになってるオブジェクトが配列になって返ってきます。
[
{"タイムスタンプ":"","name":"","lat":"","lng":"","address":"","explanation":""},
{"タイムスタンプ":"","name":"","lat":"","lng":"","address":"","explanation":""}
]
- 送信 -
$.gspreadsheets.post("[Spreadsheetsのkey]",[送信データ],[送信データとの関連づけ],[送信後に呼び出されるfunction]);これに関しては少々トリッキーな方法で、Spreadsheetsをまずフォーム化します。 Spreadsheetsの上部に「フォーム」とあるので、それでアンケートフォームを作成します。 で、フォームが完成後、フォームのソースを見て、[entry.0.single]などの文字列を探して、それと1行目の名前の関連付けをメモします。 http://spreadsheets.google.com/viewform?key=pUueo43_joGIIz68KkRF-Tw&hl=ja だと下記のようになります。
var sendData={}; var typeData = { name:"entry.0.single", lat:"entry.1.single", lng:"entry.2.single", address:"entry.3.single", explanation:"entry.4.single" }; $('input[type="text"]').each(function(){ sendData[this.name] = $(this).val(); }); $.gspreadsheets.post(seetid,sendData,typeData,sendDataEnd);
こっちはトリッキーすぎて使い勝手が激しく悪いのであまり使われないと思いますが、一応作っておきました。


