iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
Modern Web

來自 GAS 的香氣~跟鳳黃酥一起享受 Google Apps Script 的午茶時光系列 第 13

Day 13 - 物品借用紀錄系統 (3) 程式碼解說

今天主要是來補足 Day11 和 Day12 簡(ㄏㄨㄚˊ)約(ㄕㄨㄟˇ)的部分。

我們會講兩個東西:

  • Range.getValues() 會抓到什麼東西。

  • Sheet.getDataRange() 又得到什麼樣的資料。

這兩個算是在試算表中非常好用的東西,所以要專心的看喔~


我們來看到 Range.getValues() 這個東西。

為什麼前綴飾用 Range,因為他是一個 GAS 中自訂的一個物件 Range 下的一個方法,所以我在這前面都會寫上物件名稱以方便你們查閱 Docs 喔~

我們到 Docs 中找到 Range 物件的 Methods 部分 (註一):

我們可以看到他 return 一個二維陣列,把該 Range 中的所有資料都拿出來。

光說不練不是寫程式的重點,就讓我們開一個新的表單加上試算表來看看:

然後設定一下提交表單時的自動化執行:

接著提交一份表單:

最後切回執行結果來看一下吐出什麼鬼東西:

不知道大家有沒有注意到 [[ data ]] 這樣的部分,每一組 [] 就是一個陣列,而陣列裡面包陣列,那就是二維陣列囉~


我們再來看到 Sheet.getDataRange() 這個部分。

從 Methods 名稱就可以發現他就是把目前在這個 Sheet 中的東西拿出來。

在實作前我們先看到 Docs 得部分(註二):

從 Docs 中可以得知,這一個方法會 return 一個 Range 物件,其中包含從儲存格 A1 到儲存格 ( Sheet.getLastColumn(), Sheet.getLastRow()) 的範圍。

多說不如實作,我們用剛剛的表單繼續操作,新增一個 GetData() 的函式:

這邊我們可以直接按下「執行」來執行程式,但是要記得切換成 GetData 喔!

然後可以在下方看到結果:

耶?為什麼沒有東西?

阿~原來是因為 Sheet.getDataRange() 得到的是一個 Range 物件,要看到結果需要把他的 Values 都拿出來。

看到這知道我要做什麼了嗎?

沒錯,我要在後面加入 getValues() 這個 Range 物件的方法:

然後就來執行結果:

我們會發現 getDataRange() 這個 Sheet 物件的方法會把「所有在 Sheet 中的資料通通拿出來」。

所以就包含標題都會被拿出來,因此在做資料處理的時候,記得要去掉第一組資料喔!


今天的講解就到這裡囉!

最近行政真的比較忙,不管是什麼樣的公文,只要是跟「資訊」這個詞扯上邊的,通通都分文到我這邊來…快累死我了…

所以後面的文章會小小的簡約輕巧,但是一樣會讓你一步步地跟我一起快樂看 Google Apps Script 喔!

今日作業

我沒時間改,所以就不出作業囉!

「蝦!好隨興阿!」沒錯,我這個人,就是隨興!

明天見囉!掰掰!


關於兔兔們:


我:最近才發生一件事情,在電話中被其他科的老師飆罵:我的年資比你的年紀還要大。關於這點,大家可以不用生氣,我覺得只是那個老師情緒激動後的言語。唯一一點疑惑的是:阿既然年紀這麼大了,幹嘛不退休……(其實我還是有走心的)。哀算了算了,就當作是一種歷練吧!

註一:Range.getValues()
註二:Sheet.getDataRange()


上一篇
Day 12 - 物品借用紀錄系統 (3) 系統完成
下一篇
Day 14— To Do List (1) 專案前置
系列文
來自 GAS 的香氣~跟鳳黃酥一起享受 Google Apps Script 的午茶時光23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言