聯絡表單

 

用Google Spreadsheet做雲端資料庫



  










 先看下列文章: 


在繼續看下去之前,或許你已經想要在Google雲端硬碟上建立一個試算表並照著這些範例來測試看看是否可執行,但結果會令你失望,竟然這些範例是無法正確讀出你的試算表內容!你會發現在2014年之後的新版Google雲端硬碟建立新試算表時,在”發佈到網路上”根本沒有可發佈成為RSS的選項,這樣我們就無法照著前述範例寫程式來讀取該試算表的內容。可是,我們再看看既有已存在的試算表檔案仍保有這樣的選項,意思就是說舊有的試算表檔案是可以用前述範例的程式來讀取其內容的。這可奇怪了,也造成國外一堆人在網路上問這個問題(例如這個這個這個...等),但又沒有人可以提供真正可解決的方法。最後,發現原來還是可在目前狀況建立新的試算表但卻擁有舊版檔案那樣的發佈RSS選項,只要點這個短網址http://g.co/oldsheets來做開新試算表的動作(參閱How To Easily Revert To The Old Google Sheets)。 (2015.10.29更正新的測試結果,發現其實”發佈到網路上”只要選"網頁"這個選項即可,然後在讀取Google Spreadsheet資料語法格式稍有不同,改成 https://spreadsheets.google.com/feeds/list/XXXXXXXX/1/public/values?alt=json 這裡再這個2015.10.29新建的試算表改寫前述實驗例子(jsfiddle) (jsbin))


前述的實驗例子,若要將讀取自Google試算表的資料存在陣列裡面,應該要準備一個二維陣列來存放這個試算表資料,然而因為JavaScript沒有真正的二維陣列可用,必須以下列方式變出一個動態產生的二維陣列。此種設計的邏輯概念於課堂上再詳加解釋,而基於上述概念來改寫前述實驗例子之陣列版本(jsfiddle) (jsbin)。2015.10.29更正改寫前述實驗例子之陣列版本(jsfiddle) (jsbin)

function Create2DArray(rows) {
   var arr = [];
   for (var i=0 ; i<rows ; i++ ) { arr[i] = []; }
   return arr;
}
var arr = Create2DArray(100);
arr[50][2] = 5;
arr[70][5] = 7454;
// ...

由於前述介紹是在取得Google問卷(試算表)資料是JSON格式,要能解析JSON就要先認識這種資料格式:JSON TutorialJSON SyntaxjQuery getJSON() Method。JSON資料格式已經成為網站進行內容交換的趨勢,像是政府資料開放平台提供即時資訊(如新北市政府的公車到站預估資料)、Google服務平台提供的資訊(如Google Place APIBlogger JSON Feed),學會解析JSON格式資料是必要的。


不過,如果不想自己寫程式解析Google試算表的JSON格式資料,另外更方便的是使用Tabletop.JS套件來做。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



至於要將資料上傳至Google表單,要自己先在網頁上安排能讓使用者輸入資料的表單,所以要先懂HTML表單語法 (而要有更適合手機輸入的表單則可以改成用jQuery Mobile表單語法),那就可以寫成這個例子(jsfiddle) (jsbin)。不過,另一個版本(jsfiddle) (jsbin)的寫法更佳(使用jQuery語法)。

最後的例子,程式中需要Google表單的各欄位entry.######編號,而這部分可以透過「取得預先填入的連結」功能查得需要的參數。






Total comment

Author

ChenYuYi

1  意見

Cancel Reply