編程補習: 教你如何在 Google Drive 編製 [港股報價] 程式

蘋果公司剛宣告 iWorks 軟件由付款轉為免費給 Mac 用戶,這是因為辦公室辦軟件正被免費的 Google Drive 侵蝕當中,Google Drive 是跨平台的,現在很多學校和商業機構都用 Google Drive 來處理文件,反而中小企比較少,所以今次介紹這免費程式。


Google Drive 給每人有 15GB 免費空間,可以建立文件、試算表及其它檔案:


有了它,可以取代以往昂貴的辦公室軟件,以下是部份文件 (Document) 範例:

部份試算表 (Spreadsheet) 範例:



簡報 (Presentation) 範例:


表單 (Form) 及繪圖 (Drawing) 範例:


各位可到 http://drive.google.com 免費登記便可立即使用,無需下載及安裝,無論 Windows、Mac、Linux,只要有 Chrome 或 Firefox 瀏覽器便可以使用,使用方法十分簡單,與 Office 相同,在此不作說明。


但很多人未必知道,在 Google Drive 背後,其實還提供一個免費的開發平台 Google Apps Script (GAS),給我們班程式創作人便用,當我試過之後,可以想象到用途很大,尤其簡化辦公室日常業務自動化處理 (office automation),所以投入多點時間研究它的功用。


Google 把所有開發說明都詳述在:https://developers.google.com/apps-script,GAS 本身是以 Javascript 語法,其中一種 GAS 可以寄存在每個檔案當中,例如在試算表可以附加一系列的 GAS,以彌補試算表本身功課的不足,大家不妨跟著試試。


開始補習:教你自行編製「港股報價」試算表程式



首先進入 Google Drive,然後建立一個新試算表:


然後一張新的試算表檔案出現,跟著為新試算表命名,圖示如下:


然後輸入檔案名稱:


打入以下試算表內容(A1 - C4):


試算表內容完成,現在開始建立 GAS:(GAS 開發環境已包括編輯器,無需額外安裝)


選擇試算表 GAS:


之後 GAS 編輯器便會出現,以下介紹編輯器畫面的每一部份:


現在於 [程式編碼] 中的所有內容刪除 (可按 [Ctrl]+[A],再按 [Del] 鍵),然後 copy & paste 以下程式碼到你的 [程式編碼] 內:
function getStockPrice(code) {
 if (!code) return;  
 // Call Google finance to get stock price
 var response = UrlFetchApp.fetch('http://finance.google.com/finance/info?client=ig&q=HKG%3a' + code);
 var resStr = response.getContentText();
 resStr = resStr.substring(3, resStr.length);
 var jsonObj = Utilities.jsonParse(resStr)[0];
 var stockPrice = jsonObj.l;
 return parseFloat(stockPrice);
}


function getPrices() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var rows = sheet.getDataRange( );
 var numRows = rows.getNumRows();
 var values = rows.getValues();


 // Loop-thru all row(s)
 for (var r = 1; r <= numRows - 1; r++) {
   var rowData = values[r];
   var code = rowData[1];
   var stockPrice = getStockPrice(code);
   var cell = sheet.getRange(r + 1, 3);
   cell.setValue(stockPrice);
 }
};


function onOpen() {
 // Add a new menu to current spreadsheet
 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var entries = [{
   name : "Get Prices",
   functionName : "getPrices"
 }];
 sheet.addMenu("My GAS", entries);
};


然後按 [Ctrl]+[S] 來儲存更變,你的 [程式編碼] 應該與下圖相同:


要執行這個 GAS 之,首先要取得授權,圖示如下:


然後會出現以下兩個授權畫面:




之後授權畫面消失,並返回 [程式編碼] 畫面,然後再返回試算表:


現在所有功夫都準備就緒,可以執行 GAS 程式了:


不需一秒,程式執行後的結果如下(例如再有要求授權畫面出現,可按 [接受]):


就 這樣簡單,就可以自行編製自已的港股報價試算表,由此可見,Google Apps Script 效用宏大,再配合不同的網絡服務 Web Services (例如本程式使用的 Google Finance),就可編製出意相不到功能。GAS 不單只能夠控制試算表,也可控制所有 Google Drive 的 Apps 如文件、簡報、表單等,只要大家多加相象,一定可以自行編製出不同的程式,來減省日常文書處理的人手及時間,相當適合在中小企使用。


事實上我現在為客人編製的網站都應用 GAS,來作資料輸入及報表輸出,為我為客人都減省很多時間,有機會將會為大家介紹。

-------------------
各位如果對本網誌有興趣的話,請在畫面右邊成為追蹤者,日後有新網誌時 Blogger.com 會自動通知,多謝支持(聲明:電郵由系統發出,電郵地址不會給予及不經作者)

留言

Ray Lui說…
咦!google咁正有條json string return返嚟,我之前都做個script由aastock攞股價,不過麻煩好多,要拆解html tag。多謝指教!
Simon Ho說…
JSON 真係幫助我地好大,一、兩句JS就搞掂。而且由 Google Finance 拿即時股價十分快,這可能是大家都在 Google 雲端。