Pages

搜尋此網誌

2013年12月24日 星期二

JavaScript 存取 google spreadsheets 試算表

JavaScript 存取 google spreadsheets 試算表

google spreadsheets,也就是 google doc 裡面的 excel,對於 excel 的操作相信大家一定不陌生,如果有寫過一些程式,或許有寫過將 excel 當做 database 進行增修改查的動作。

這篇所要介紹的也就是如何存取 google spreadsheets 進行資料的操作,如果你需要一個快速且容易維護的資料庫,那 google spreadsheets 非常適合,將透過 google 所提供的 Visualization API 進行,下面將對幾個重點部分進行介紹

query Language

  • Query Language Reference

    google 官方 query api 裡面有關於查詢語法的說明,基本上就像在下查詢 sql 一樣,如果有操作過 sql 語法,非常好理解。

publish spreadsheets

新增 spreadsheets Records

google Visualization API 無法讓你進行 新增 所以如果你需要新增資料,建議使用:

Google 表單

查詢 spreadsheets

查詢的部份就是重頭戲啦,從範例來看會比較快一點理解:

sample data:

image

範例程式:

// 讀取店家資訊以及地理位置,並且透過 createMarker 將位址加入到 map 裡

// 載入 Visualization API
var query =null;
$(function(){

// key 是假的,請使用你的 key
    var URL = 'http://spreadsheets.google.com/tq?key=0AsXj_vRMyOYyk5OXdKRlJXdGZ1FZU3FXRjl6E#gid=0';
      google.load('visualization', '1',
          {'packages': ['table']});
    query = new google.visualization.Query(URL);

});


function queryData(queryStr,createMarker){

    query.setQuery("select B,C,D,E,F where H='Y' "+queryStr);

    query.send(function(resp){
      if (!resp.isError()) {
        var dataTable = resp.getDataTable();
        var jsonData = JSON.parse(dataTable.toJSON());
        var len = jsonData.rows.length;

            for (var i = 0; i < len; ++i) {
              var row = jsonData.rows[i];

                var markConfig=new Object();
                markConfig.latitude=row.c[3].v;
                markConfig.longitude=row.c[4].v;
                markConfig.address=row.c[2].v;
                markConfig.name=row.c[0].v;
                markConfig.description=row.c[1].v;

                createMarker(markConfig);
            }
        }
    });
}

非常簡單,應該也淺顯易懂,幾個重點:

  1. 在 query 部分,沒辦法使用 column Name,只能使用如 samle 圖片中的 A、B、C…
  2. 相同查詢條件下,無法連續查詢,甚至也不會 response records,舉例來說,select B,C,D,E,F where H='Y' 這查詢下第一次 ok,但第二次就會沒有反應,所以在處理上,需檢查查詢條件是否與上次相同,如相同則不需再查,當然也許是可行的,但以我目前測試的結果是這樣

如果你要做一個簡單問卷,或是購買清單之類的應用,相信 google spreadsheets 是個不錯的選擇,夠簡單,且輔助 google 表單,可以很快速的完成資料輸入的頁面,查詢上也不複雜,就是幾個實用上要注意的額外處裡一下,希望可以幫有需要的人解省一些時間囉!

張貼留言