2015/6/2

KKTIX / Google Spreadsheet / Mac OS dashboard 快速製作

COSCUP 2015 Workshop 採用 KKTIX 報名,場次不少,我們自然也挺關心每個場次的報名狀況(關係到我們是否要針對特定族群再加以宣傳)。由於每場的 KKTIX 活動頁面都選用同樣的佈景主題,也都公開顯示報名狀況,於是即使沒有提供 API,也可以很容易用 Google Spreadsheet 的 ImportXML 函式快速製作出綜合每個場次報名狀況的一覽表。

ImportXML 可以接兩個參數:

  1. 要讀入的 XML 網址
  2. XLink query,用以指明需要顯示的資料

以迅速爆滿、由 d3js.tw 成員慕約帶來的「第一次自幹 Open Data SimCity 就上手」為例,其網址為 http://coscup2015.kktix.cc/events/opendata-simcity ,而查閱原始碼可知,記載人數的 node 為「<span class="info-count">」的內容,於是 XLink 就可寫作 //span[@class='info-count'] 。

那麼只要在 Google Spreadsheet 的某個儲存格打入下列公式:

=IMPORTXML("http://coscup2015.kktix.cc/events/opendata-simcity", "//span[@class='info-count']")

就會讀入現有的報名人數及總名額,接著再用一些文字操作的函式,也就能順利把數字部分都讀出來。於是只要搭配一點點變化,就可以做出這樣的表格:

另外再做點美化,發布為 HTML 後,就成了人人可看的狀態一覽表:

其實若要自己看,也不盡然得發布為 HTML,但發布後搭配 Mac OS 的 Safari 「在 Dashboard 裡打開的功能」,那就能把這個頁面變成方便查閱的 Dashboard 小工具了:

Google Spreadsheet 還有另外提供 ImportHTML 這類的函式,但主要是用來讀取表格;如果像這種只要取幾個節點或一份清單的狀況,有鑒於 HTML 也是一種 XML,Google Spreadsheet 可以正確讀入沒有問題,還是 ImportXML 會方便點。

不免俗也是要廣告一下:COSCUP 2015 Workshop結合 15 個社群傾力演出,陣容堅強內容充實,絕大部份為免費參加。歡迎大家一起來唷 :)