顯示具有 Google Sheets 標籤的文章。 顯示所有文章
顯示具有 Google Sheets 標籤的文章。 顯示所有文章

【福】爭取時間愛得及時 增加工作生活效率小工具(利用他人時間 · 下篇)

讀者希望突破每天只有 24 小時的界限,多賺幾個小時追夢 / 玩樂 / 睡覺嗎?

上篇分享了「將人類潛能作更佳發揮」為主的工具,本篇就讓我們突破每天只有 24 小時的界限, 「利用他人或機器的時間」,將生產力無限複製。如果讀者能複製出 10 個自己,那每天你就有 240 小時(的生產力)可用了。



複製自己以提高生產力的概念,其實一早就存在你我的身邊,而且大家大概已經習以為常沒有很容易察覺。筆者當初也沒有為意,直到幾年前成家立室,搬出來跟太太兩個人住,一時間兩人要槓起所有家頭細務。在掃地拖地吸塵抹窗煮飯燙衫弄得團團轉的時候,突然覺得⋯⋯洗衣機實在是很偉大的發明!以前一直覺得是理所當然的工具,但今日如果我們沒有洗衣機,大概我還在逐件逐件洗擦扭乾,叫我如何再分身打理其他家務?

人生的兩大槓桿,莫過於金錢和時間。我們按揭買樓、借孖展買股票,其實就是利用「他人的金錢」幫助自己控有更多資產,自己付出一部分,卻能享有更大面額資產所帶來全份的回報(或虧損)。同樣道理,老闆聘僱員工,其實就是利用「員工的時間」,幫助自己在同一時間內擁有更高的生產力,自己工作一部分,卻能享有更多整體生產力所帶來的利潤(或虧損)。借錢要付利息,請人要付工資,利用相對平穩固定的支出,倍大控有資產或生產力的效果。只不過,在人工智能的年代,利用電腦、互聯網甚至物聯網,讀者不一定需要聘請實體的個人才能複製自己、增加生產力。

相信讀者一定留意到筆者很小心強調了兩次「(或虧損)」。在繼續討論之前,必須指出很重要的一點,就是在利用別人時間、開展自動化、複製自己之前,都必先確保所複製的程序本身是有效率的;否則,「時間槓桿」就會如實將低效率放大,反而做成生產力耗損。這正如槓桿買了價格下跌的資產,結果就會放大了虧損而已。Bill Gates 的名句正正就是說明這一點:「 The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency. 」


1. IFTTT


(圖片來源:TechCrunch.com)

IFTTT 全寫是 「IF This Then That」,基本上它是一個 Universal Plug,能幫你寫出千變萬化的自動化程序。就算讀者不懂編程,也能很簡單的將日常的 Apps 互相串連,將日常簡單眼見的工夫由機器代勞。

舉幾個簡單例子讀者就會明白:

  • 如果我進入或離開辦公室100米範圍,就發送短信給我太太(報平安),並在 Google Sheets 記錄進入或離開的時間(方便日後做 Time Audit)。
  • 如果收到 IB 電郵給我的每日報表,就把它存放在 DropBox 內的指定文件夾,並自動以今天的日期命名檔案。
  • 如果我在 Google Mail 給一封電郵打星,則新增提醒事項提醒我在今日之內處理。
  • 如果朋友在 Facebook 新增一張 Tag 了我的相片,則自動存入 Dropbox 指定文件夾中。 
  • 如果我的智能手環偵測到我昨晚的睡眠時間不足,則新增提醒事項提醒我今晚要多睡一點。
  • 每次踏上智能浴室磅量度體重後,如果體重超過某一標準,則將家裡顏色燈調為紅色,並將我的體重發送上 Facebook (很有效的減磅法!:P )


它能做到的事,基本上就只受制於 IFTTT 所連接的服務種類,以及讀者閣下的想像力!現在更有不少開發者為 IFTTT 開發實體工具,例如是一個實體按鈕,將原來不太「智能」的東西連接上物聯網:

  • 如果家裡的智能溫度計 / 天氣報告讀到的氣溫高於 26 度,而我進入家裡 200米範圍以內,則按動控制冷氣機開關的實體按鈕一下。
  • 泊車後按動車上的按鈕一下,就能將泊車的位置以 SMS 傳送給自己。


IFTTT 能連接的服務還在不斷擴充中;相信在不久的將來,筆者以下心中所想也能通過 IFTTT 實現:

  • 如果恆指沸騰指數跌破 25 點,則在 IB 戶口以限價盤盡買盈富基金,並於買入後更新 Google Sheets 交易紀錄和發送最新的投資組合資料到我電郵。(這點其實現在通過 IB Script 應該也能做到。)
  • 如果水耕蔬菜的水測試到 pH 值或某一營養素過少或過多,則利用按鈕調整營養液和水分的比例。(我懷疑這點現在也能做到。)


而且,凡是跟 Google Sheet 有關的,還可以配合下面介紹工具 Google Script 使用,用以製作指數、定期電郵報告,好用非常!如果讀者還沒有想到適合自己的自動化條件,可以在 App 內參考千萬個用家開發的小程序,「總有一個適合你」;而有些創意的使用方法更讓人當堂結舌!


2. Google Script / Google Sheets 智能秘書


(圖片來源:Webs Wheel)

如果閣下是筆者長期讀者,相信不用多介紹筆者的智能秘書。早前筆者曾以六合彩到價提示為例,Step-by-step 教學如何建立自動化智能秘書。不如就讓筆者介紹一下目前的自動化秘書軍團吧!


  • 六合彩到價提示智能秘書,負責在每次預測彩池超過 5,000 萬的六合彩攪珠前兩天提醒筆者購買六合彩。(如果馬會能刊發 API,筆者會毫不猶豫開發自動購買六合彩程序,反正筆者每次也是買同樣兩組數字。)
  • 天氣和空氣質素健康指數智能秘書,負責每天早上五時將今明兩日、緊接下來的週末的天氣預測,以及今日的空氣質素健康指數預測,撮要在一簡單電郵中,好讓筆者決定是否晨跑,以及是日的衣着。
  • 繳費提示智能秘書,負責每星期六早上將到期未繳付的賬單羅列在一電郵內,這包括所有水電煤單、管理費單、差餉地租單、信用卡月結單等等,有了這位秘書,筆者的字典基本上再沒有「遲交罰款」這四個字。(同樣的,如果 PPS 刊發 API 的話⋯⋯)
  • 測市指數更新智能秘書,負責每晚將是日大市數據加入「恆指沸騰指數」以及「主板熱鬧領先指數」的計算系統,並更新本網誌右上角的公布數字。
  • 股票監察智能秘書,負責每晚根據持倉及監察名單發出到價提示。筆者打算擴充其功能,希望能做到每日市況以及投資成績彙報,以及自動更新派息紀錄、關鍵日期等資訊。


筆者目前最想開發的,是股票及債券評分智能秘書,使得在細看之前,能夠先讓秘書過目篩選一下;甚至每日或每星期將大市 Scan 一次,發掘新的投資機遇。不過一來近來工作繁忙,二來還沒有研發出擱取 Morningstar 資訊的方程。日後如果有所成就,定當另文分享。


3. 家務助理



人工智能雖然已經能為我們做很多事,但是在傳統的領域上,很多時我們需要的是一對熟練的手腕。相比智能時代中什麼抹窗機械人、掃地機械人,筆者選擇的是傳統的家務助理。

筆者到目前還未能接受與雇傭關係的人同居,所以目前遠未有聘請海外家傭的打算;取而代之的,便是一星期一次的家居清潔家務助理(即「鐘點」)。

回想當年筆者準備結婚與未婚妻同居,起初幾個月既要適應新生活,又要籌備婚禮,更要同一時間扛起沉重的家務,簡直讓人吃不消。很多時在家務方面我們都得過且過——筆者的最高紀錄是三個月沒有掃地!(幸好那個單位是租的,哈哈!)

結果我們聘請了一位相熟朋友介紹的家務助理,生活質素頓時提高了不少。助理一星期來一次,每次四、五個小時,洗衫晾衫燙衫摺床洗碗掃地拖地洗廁所抹窗抹屋全包,盛惠數百元一次;但我和太太都樂意付出這個價錢,因為所能得到的價值遠超這個數字。

正如筆者在關於家庭生活開支的前文所述,筆者認為中產的生活不在乎包裝,而在乎「自由」,故此把不需要用自己 Man-Hour 的工作外判,以換取時間和心神,專注於家人幸福和繼續追尋財務自由。家務助理就是數年來最佳的代表作。

要知道我倆跟大家一樣,一星期只有 168 小時,其中睡覺 55 小時、上班連通勤約 60 小時、早午晚飯梳洗沖涼等「維生」的時間開銷又 15 小時。一星期只剩下 35 小時追求人生的意義(即「福祿壽全」),如果得再花當中 10 個 8 個小時自行處理家務⋯⋯

要知道做運動保持身體健康是不能外判的、與家人相處溝通以及看書靈修冥想促進心靈富足也是不能外判的、投資理財追求財務自由雖然可以外判但卻是非常危險的。而既然家務工作可以外判,家務助理又比自己處理家務更有效率(自己做 8-10 個小時的工作,助理 3、4 個小時就搞定),空出來的時間自覺能賺到的比起區區幾百塊錢又遠多,這是於自己、於家庭、於社會都是 Value Creation,何樂而不為?至今筆者已經聘用家務助理超過 5 年,仍然覺得這是非常非常超值的交易。



其實筆者日常喜歡用的工具還有很多,例如利用 Dropbox 配合 Scannable(一般文件) 和手提 Scanner(重要文件) 將生活完全無紙化、利用 Feedly 一次過看幾十個 Blog ⋯⋯ 但基本原則是萬變不離其宗,即人一天只有 24 小時,時間是我們最寶貴的資源,要用得其所必須善待時間,找出耗費時間的活動,然後衡量得失效率作出外判決定,務求讓自己人生的每一個小時都有最大的產出。

產出的不一定是金錢或利益,身體健康、給家人溫暖和愛,這些都是無價的瑰寶,是金錢之所不能,但只有用時間和心機賺取的。為此,我們更要善用時間,借助工具輔助,以「愛得及時」。

【祿】道高一尺 魔高一丈 Bloomberg 最新股價擷取法

話說最近 Bloomberg 更改了報價頁面,頁面上最新報價的 Class Name 更新增了亂碼!如果讀者嘗試利用早前筆者介紹的方法建立智能秘書,恐怕這回會給 Bloomberg 打敗。但對於有少許程序編寫底子的筆者而言,這次 Bloomberg 的改動也許有點侮辱了筆者以及各編程員的智慧



筆者的股票監察表建立於 Google Sheets 而股價資料主要來自 GoogleFinance 和 Bloomberg。月初旅行前後開始,筆者發現從 Bloomberg 很多時候都取不到股價。由於 Bloomberg 的股價是利用 XPath 在第三方網站取得的,並不如 GoogleFinance 函數在 Google Sheets 是原始支援,所以起初覺得偶有未能取價的情形也不足為奇。

及後遊日回來,筆者發現取股價的函數沒有一次成功(所以經常顯示筆者今個月股票倉賠了好幾萬元)。於是筆者沒有辦法,只好造訪 Bloomberg 網站看看究竟。

蒲開網站,很明顯的見到版面改動過來。未看原始碼,筆者心中已知道背後的原始碼肯定經過改動,目的就是防止我們這些「網路蛀米蟲」取股價又不看其網頁廣告;看來一些 XPath 工程少不免。資訊提供者往往借改版面更新視聽為名,打壓我們這班在免費資源的窄鏠之中生存的投資人為實。

再利用前文介紹過的方法,Highlight 股價 Inspect Element,筆者發現這回股價的 Class Name 新增了些幾個數字的亂碼

<span class="priceText__1853e8a5">1.16</span>

很明顯這次網頁的改動就是防止一般大眾編程員隨便的擷取股價!在這裡請讓筆者解釋一下。

在以前的 Bloomberg 頁面,股價的原始碼一行是這樣的:

<div class="price">1.16</div>

只要看穿了這個原始碼結構,然後利用 XPath 告訴 Google Sheets 擷取所有在 DIV 標籤內 Class 屬性值為「Price」的內容,就可以輕易取得股價:

=importxml("https://www.bloomberg.com/quote/RW0U:SP","//div[@class='price']")

就算讀者不懂得將上面的一段文字化為 XPath,大概也能理解文字的內容吧!筆者知道坊間其實有些網路小程序,使用家可以在完全不懂編程的情況下擷取網頁資訊(例如股價),其方法就是閱讀用家希望擷取的資訊附近的特徵(DIV 內 Class 屬性為 Price),然後替用家完成編程的部分。所以在從前 Bloomberg 頁面,要取得股價基本上是幼稚園生也能做到的。

好了,現在 Bloomberg 在股價(以及其他資訊)的 Class 值安插了一堆亂碼,以上的方法就不奏效了。為什麼?因為就算讀者根據上面的 screen capture 寫了一下一段 XPath:

=importxml("https://www.bloomberg.com/quote/RW0U:SP","//span[@class='priceText__1853e8a5']")

Google Sheets 在執行 ImportXML 函數時,會重新載入 Bloomberg 頁面,而 Bloomberg 伺服器會在 Class 值重新產生出新的亂碼。結果,ImportXML 函數沒能在新的頁面找到舊的亂碼,回傳結果 #N/A!。利用上述網路小程序擷取股價的話,當然也只有投降了。

但若讀者有少許編程基礎和數據科學的感知,應該不難在新的網頁原始碼找到新的特徵。事實上,筆者認為 Bloomberg 侮辱各位讀者智慧的地方,在於其在新頁面中股價的 Class 值仍然大大隻字寫著 priceText。只要有方法利用 XPath 表達式寫出 Class 值「內含有」(而非「等於」)「priceText」,單憑這點已經完全夠打。

網路資源豐富的今天,要找出如何寫這句其實只需要 30 秒。而答案是:

=importxml("https://www.bloomberg.com/quote/RW0U:SP","//span[contains(@class,'priceText')]")

未知道 Bloomberg 的網路編程員,花了多少時間和資源去修改這個頁面?然後 1 分鐘內就被筆者破解,這故事聽起來有沒有些大衛打到巨人哥利亞的味道?

【祿】邁向財務「自由」之路:建立專屬且免費的自動化軍隊1(下篇)

副題:Google Sheets自動六合彩彩池到價電郵提示 Step-by-Step 更可引發無限應用可能

續上篇

2. 建立一段能將彩池及日期以電郵發出的程式碼

上回講到我們已經建立了一張 Google Sheet 能自動從馬會網頁取得下期六合彩的彩池金額以及下期搞珠日期的資訊。

要讓 Google Sheets 發出電郵,需要在 Google Sheets 寫幾行簡單的程式碼,告訴 Sheets 電郵的受文者、主旨和內容。

首先打開「Tools」之下的「Script Editor…」:



在新頁面的左上方先隨便給予這個 Script File 一個新名字,就叫 MarkSix Email 吧。也可以同時將程式碼編輯空間內預設的子程式名稱,改成自己喜歡的名字。例如筆者叫它做 sendMarkSix



程序第一步,是指示 Script 需要存取的是哪個 Google Sheet 試算表的哪一張 Sheet。這時我們回到 Google Sheets並留意網址列,當中能找到Locate 這張 Sheet SheetID(讀者的 SheetID 肯定跟這張是不同的,每一張試算表的 ID 都是唯一的):



回到 Script Editor,在 sendMarkSix 子程式內輸入以下兩行,定義 Script 存取的試算表 sheet

    var spreadsheet = SpreadsheetApp.openById("1b9trFT7cQgft0h4kkhLIQ1_b56kzUWj2_k1cez6_70g");
    var sheet = spreadsheet.getSheetByName("Sheet1");

其中第一行紅色的部分是剛才取得的SheetID,而第二行則是試算表的名稱,可在試算表底部找到。

之後就是根據試算表的內容撰寫自動化電郵了。定義以下的變數(受文者、主旨、內容):

    var Receiver = "xxx@xx.com";
    var Subject = "下期六合彩彩池 " + sheet.getRange("A1").getValue() + " @ " + sheet.getRange("A2").getValue();
    var Body = "";

主旨中的 A1 A2 分別就是彩池金額和下期搞珠日期。由於這電郵很簡單,資訊一句就能交代完成,所以筆者並不介意將所有資訊放在主旨列,內容留白。

好了,現在萬事區備,只欠一聲發送電郵的號令:

    MailApp.sendEmail(Receiver, Subject, Body);

整個發送電郵的程序就寫完了。現在可以按動 Run(並容許程序取得相關的資源執行,例如以你的名義發送電郵),一切順利的話,你應該能在Receiver 所指定的電郵郵箱收到一封電郵:



不過筆者還有一個要求。筆者對獎金太低的六合彩搞珠沒有興趣,所以不希望每一期都收到電郵提示,只有彩池達到 4千萬以上的才通知我(要不然要私人秘書來做甚麼?)

這時候我們可以定義一個獎金的變數,然後指示當獎金超過某個數額的時候才發電郵(股票到價提示就是用這個技巧了):

    var Jackpot = sheet.getRange("B1").getValue();
 
    if (Jackpot > 40000000){ 
        MailApp.sendEmail(Receiver, Subject, Body);
    }
               
最後,作為一位有責任的編程員,記得寫下 Comments 方便日後參考。





3. 建立指示讓程式碼在搞珠日後的午夜運行

最後這一步是最簡單的。六合彩搞珠在每星期二、四、六的晚上舉行,所以在搞珠日後的午夜執行程式,應該可以確保馬會已更新下期六合彩資訊,同時給予我們足夠的時間購買下一期六合彩。

Script Editor 介面按下時鐘 icon [Current Project's Triggers]。新增三個 Trigger,分別指示程序自動在星期三、五及日的子夜執行:



按「儲存」就可以。


至此,整個系統已經大功告成!當然這只是一個很簡單的系統,若然當下幫得上忙的話筆者固然高興,但筆者更希望見到的是這小小的兩篇介紹,能啟發讀者開發更深入的系統,將日常的投資和生活重複的工序自動化,以騰出寶貴的時間予做運動和其他讓身體健康的事情,以享受與家人朋友共聚的心靈富足時間,以及財務自由應所帶來真正的自由。


如果讀者希望直接取得原檔,可以在本頁留言處留下電郵地址,也歡迎彼此切磋交流。

【祿】邁向財務「自由」之路:建立專屬且免費的自動化軍隊1(上篇)

副題:Google Sheets自動六合彩彩池到價電郵提示 Step-by-Step 更可引發無限應用可能

多數企業家成功的一大基本條件,在於將較基本的工作交與別人而自己保持清晰的腦袋。這樣,企業家便能節省時間,集中精力發揮自己的所長。將基本的工作交與別人,更能發揮乘數效應,同一時間擁有多個自己同時工作,發揮最大的效能。

我們作為個體戶或是小投資者,未必能聘請員工作為「秘書」或是「軍隊」為自己效命。然而現今科技進步,我們何不跟大企業學習,借助互聯網和雲端運算,在網路世界將日常執行的繁瑣事情程序化,建立虛擬秘書軍隊?

筆者這次會從最簡單的例子開始,解構如何利用 Google Sheets 製作六合彩彩池到價電郵提示。

讀者應很容易就能舉一反三,製作股票到價提示、每日投資組合狀況匯報、每周賬單繳付提示等系統。從此不用再記得去 refresh 網站、生怕錯過了機會;而且有甚麼要知道、何時要知道,都由自己話事,活像是擁有專屬自己的秘書甚至是自動化軍隊,更甚者這是免費的


要建立六合彩彩池到價電郵提示,大致有三大步驟:
1. 建立一張能閱讀六合彩彩池及下期搞珠日期的 Google Sheet
2. 建立一段能將彩池及日期以電郵發出的程式碼
3. 建立指示讓程式碼在搞珠日後的午夜運行

上篇會先介紹第一步驟,下篇會介紹餘下兩個步驟。如果讀者希望直接取得原檔,可以在本頁留言處留下電郵地址;原檔會在下篇發表後不日發出。


1. 建立一張能閱讀六合彩彩池及下期搞珠日期的 Google Sheet

要建立 Google Sheet,首先要擁有 Google 帳戶。登入 drive.google.com 後選新增空白的 Sheet 文件。給他隨便起個名字,就叫 MarkSix 吧。

六合彩彩池及下期搞珠日期的資訊可在馬會網站http://bet.hkjc.com/marksix/index.aspx?lang=ch 找到:



要利用 Google Sheet 閱讀資訊,方法是利用 ImportXML 函數。函數有兩個參數:

=IMPORTXML(url, xpath_query)

url 顧名思義就是資料來源的網址,即是 "http://bet.hkjc.com/marksix/index.aspx?lang=ch"(緊記加上 quotation marks)。
xpath_query 是需要閱讀的資訊在頁面的位置,例如我們要閱讀六合彩彩池的資訊,就得告訴 Google Sheet 這個彩池到底放在網頁的哪裡。

找出這位置的編碼通常是整個Project 最具挑戰性的部分。一般第一個嘗試的方法是 Inspect Element。方法是在瀏覽器上 Highlight 彩池的金額,按滑鼠右鍵,選取「Inspect」或「Inspect Element」(筆者用的是 Google Chrome,其他瀏覽器的操作應是大同小異的):



瀏覽器會彈出網頁的原始碼,並 Highlight彩池金額的相關部分。此時在 Highlighted原始碼按滑鼠右鍵,選取「Copy XPath



此時如果我們貼上 Copy 了的東西的話,大概會得到以下的結果:

//*[@id="oddsTable"]/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]

這就是六合彩彩池的資訊在上述馬會網頁的位置。

現在讓我們測試一下能否使用這位置擱取彩池資訊。在 Google Sheet Cell A1 輸入:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id="oddsTable"]/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]")

很抱歉嘗試是失敗的。仔細看看 Formula Bar,會發現 xpath_query 參數中有一個部分顏色轉黑了。原來 Google Sheet 誤以為 XPath 裡的 " Google Sheet Function 定義字串結尾用的 "



解決方法是多打一個 " 以示脫逸:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id=""oddsTable""]/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]")

這次函數順利執行,但執行結果是 #N/A,即是函數未能取到任何資訊。通常的原因是 XPath Restrictive,這時候可以嘗試取走一些可有可無的項。例如在這個例子中,每一個 table 中只可能有一個 tbody,那就是說 tbody 這些項是可有可無的。擁有一些基本 HTML 的認識會對這除錯步驟很有幫助。

Xpath_query 中取走所有 tbody 的項:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id=""oddsTable""]/table/tr[2]/td/table/tr/td/table/tr[6]/td[2]")

這回我們終於成功取到彩池金額:



其實如果讀者對 HTML 有少許認識,不難在網頁原始碼發現彩池金額的 td cell 已經附送了 id

<td class="snowball1" style="line-height:15px;">$15,000,000</td>

利用這個資訊以及少許 XML 的知識,可以嘗試更乾淨俐落的取到彩池金額:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//td[@class=""snowball1""]")

Google Sheet 會回傳兩個金額,一個是多寶 / 金多寶,另一個是我們要的彩池。



仔細看一下網頁原始碼尋找原因,讀者會發現多寶 / 金多寶的金額也是用同一個格式裝住的,而 ImportXML 函數會回傳在網頁中所有符合條件的項目。這時候我們只要告訴函數我們想取的是第二個 Element 即可:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "(//td[@class=""snowball1""])[2]")



同一方法,我們可以在 Cell A2 用以下任一方法取得下期的搞珠期數:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id=""oddsTable""]/table/tr[2]/td/table/tr/td[1]/table/tr[2]/td[2]")

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "(//td[@class=""content""])[5]")


資料擱取大致完成。然而為了方便下一個步驟的資料處理,讓我們先將彩池金額從文字(字串 string)換成數字。在 Cell B1 輸入:

=VALUE(A1)


以後每次打開這張 Google Sheet,試算表就會自動從馬會網頁取得下期六合彩的彩池金額以及下期搞珠日期的資訊。

至於如何指令 Google Sheet 將此資訊定期電郵至讀者的信箱,敬請期待下篇

熱門文章