最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。

2017年3月6日 星期一

Google Spreadsheet 操作 --- Google 視覺化API查詢語言,簡易版操作

Google 視覺化API查詢語言 (Google Visualization API Query Language) 是用簡單方式就可以查詢Google Spreadsheet,這裡用簡易的方式透過URL輕鬆取得指定 Google Spreadsheet 內的資料,該方法位於Google官方網站上提供,所以有的資源可能不多,如有其他方法歡迎各位朋友提供。
以下就來藉由在Google雲端硬碟的資料檔試算表來介紹相關操作。

在URL的/d/ ~ /edit/ 之間取得該試算表的Spreadsheet id與gid資訊,這兩個ID在後操作非常重要。


使用以下URL的內容,帶入上述2個ID就可以來進行存取Google Spreadsheet資料的動作。
https://spreadsheets.google.com/tq
?tqx=out:html
&tq=SQL語法
&key=Spreadsheet id
&gid=試算表id
介紹如下:
Json檔輸出。
https://spreadsheets.google.com/tq?key=1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY&gid=0
預設下載檔案名稱為json.txt,檔案格式為json。
或使用
https://spreadsheets.google.com/tq?tqx=out:json&key=1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY&gid=0

CSV檔輸出。
https://spreadsheets.google.com/tq?tqx=out:csv&key=1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY&gid=0
預設下載檔案名稱為data.csv。

HTML檔輸出。
https://spreadsheets.google.com/tq?tqx=out:html&key=1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY&gid=0

我們也可以Google Spreadsheet 當成一個小型的資料庫,透過SQL語法來輸出,參考以下的說明。
1. 只顯示C、E、F、G、H欄位輸出。
https://docs.google.com/spreadsheets/d/1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY/gviz/tq?tqx=out:html&tq=select+C,E,F,G,H&gid=0

2. 計算每科的平均。
https://spreadsheets.google.com/tq?tqx=out:html&tq=select AVG(E),AVG(F),AVG(G),AVG(H)&key=1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY&gid=0

3. 選擇性別為女性的所有資料,Select * where (D contains '女')。
https://spreadsheets.google.com/tq?tqx=out:html&tq=select+%2A+where+%28D+contains+%27%E5%A5%B3%27%29&key=1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY&gid=0

PS:由於要指定性別為女性,就是以中文字 "女" 進行過濾篩選,因此要對 "女" 字進行URL編碼,可透過以下網路上提供的免費編碼進行處理,相關內容可參考 Query Language Reference 。
4. 計算總分排名,Select C,(E+F+G+H) ORDER BY E+F+G+H DESC。
https://spreadsheets.google.com/tq?tqx=out:html&tq=Select+C%2C%28E%2BF%2BG%2BH%29+ORDER+BY+E%2BF%2BG%2BH+DESC&key=1iUwjMswIKeUcjbHzIhkFVajnwydNM_YeWFM5EG4hqqY&gid=0

以上的操作筆者主要應用在 Excel 與 MultiCharts,各位讀者也可自行組合變化,相信可以做出更多不同的應用。

如果要讓外部程式可以讀取需要將檔案設定為共用。
Ste1. 檔案共用情況確認。

Step2. 滑鼠右鍵,選擇共用。

Step 3. 點選完成按鈕。

Step 4. 再次確認是否出現群組共用圖案。

由以上的設定後,外部程式才能讀到,這點要特別注意。

參考資料: