
App Inventor 使用最新試算表元件 Spreadsheet_Part 3
今天要來介紹 Spreadsheet 各個方法的功能;因為共有十幾個方法以及觸發的事件,所以整體教學會比較冗長,我會在下方建立一個快速連結,並寫上功能簡介,如果不想完整看完教學,那就直接挑你想看的功能就好;教學文章不會一次打完,因為我時間不多,所以會慢慢更新!
想直接試完整功能可參考官方教學
P.S. 以下幾點可以先記著,在使用元件的方法時,比較不會亂掉。
col 是我們試算表的直欄,例如:A 欄、B 欄…… 等等;不過在使用方法時也是帶入數字。
row 是我們試算表的橫列。
CellReference 是指單一儲存格,例如:A1、B1…… 等等
RangeReference 是指範圍儲存格,例如:A1:C3、B2:E5…… 等等
快速連結:
讀取:
新增 / 覆寫:
刪除:
讀取
讀取單一儲存格資料:
使用方法:ReadCell
使用此方法需要代入兩個參數,sheetName 和 cellReference。
第一個參數是我們試算表裡的工作表的名稱
第二個參數則是我們想要讀取的儲存格內容,可用字串或是使用 GetCellReference 方法。
使用此方法後會觸發 GotCellData 事件,此事件的變數 cellData 就是我們要讀取的儲存格的內容。


讀取直欄儲存格資料:
使用方法:ReadCol
使用此方法需要代入兩個參數,sheetName 和 colNumber。
第一個參數是我們試算表裡的工作表的名稱
第二個參數則是我們想要讀取的直欄的儲存格內容,若要讀取 A 欄,則輸入數字 1、B 欄 輸入數字 2…… 以此類推。
使用此方法後會觸發 GotColData 事件,此事件的變數 colDataList 就是我們要讀取的內容,為清單格式。


讀取範圍儲存格資料:
使用方法:ReadRange
使用此方法需要代入兩個參數,sheetName 和 rangeReference。
第一個參數是我們試算表裡的工作表的名稱
第二個參數則是我們想要讀取的範圍儲存格內容,若要讀取 B1 到 C4 的儲存格資料,那就填入字串「B1:C4」;
也可使用 GetRangeReference 方法,取得上述字串;此方法要填入數字。
使用此方法後會觸發 GotRangeData 事件,此事件的變數 rangeData 就是我們要讀取的內容。


讀取橫列儲存格資料:
使用方法:ReadRow
使用此方法需要代入兩個參數,sheetName 和 rowNumber。
第一個參數是我們試算表裡的工作表的名稱
第二個參數則是我們想要讀取的橫列儲存格內容,若要讀取第 3 列的資料,就填入數字 3。
使用此方法後會觸發 GotRowData 事件,此事件的變數 rowDataList 就是我們要讀取的內容,為清單格式。


讀取試算表所有資料:
使用方法:ReadSheet
使用此方法需要代入一個參數,sheetName。
第一個參數是我們試算表裡的工作表的名稱
P.S. 如果沒有設定 CredentialsJson,那麼 sheetName 只要用預設的,就可以讀取到資料了!
Part 1 教學有提到
使用此方法後會觸發 GotSheetData 事件,此事件的變數 sheetData 就是我們要讀取的內容。


讀取篩選的資料:
使用方法:ReadWithExactFilter 和 ReadWithPartialFilter
兩個方法都是篩選資料,差別在於其中一個所填入的值要完全符合才顯示資料、另一種則是只要有我們填入的值,即使不是完全符合也讀出資料。
就像下 SQL 語法「select B, C, D where B = “value”」和「select B, C, D where B like “%value%”」的差別
可參考文章「App Inventor 快速篩選想讀取的資料」
使用此方法需要代入三個參數,sheetName、colID、value。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是填入數字來選擇直欄,例如我要選擇 B 欄位,那就填入數字 2。
第三個參數是我們要篩選取出的資料的值
那麼到底要怎麼用呢?
Ans:假如我要搜尋 James 的所有資料,因為 James 這個值在我試算表的 B 欄位裡,所以就在 colID 填入 2、value 填入字串 James。
使用此方法後會觸發 GotFilterResult 事件,此事件的變數 return_rows 和 return_data 分別是,告訴我們讀取到的資料在試算表的哪幾列,和我們想讀取的資料內容。
兩個變數都是清單格式

ReadWithExactFilter 方法:
須完全符合我們填入的值

ReadWithPartialFilter 方法:
只要部分符合我們填入的值

取得儲存格字串:
使用方法:GetCellReference 和 GetRangeReference
使用此方法分別需要代入 二個 / 四個 參數,row、col。
第一個參數是橫列的數字
第二個參數是直欄的數字
兩個方法都會直接回傳值。
回傳的值為字串格式


新增 / 覆寫
將資料新增在直欄:
使用方法:AddCol
使用此方法需要代入兩個參數,sheetName 和 data。
第一個參數是我們試算表裡的工作表的名稱
第二個參數則是我們想要新增到試算表的內容,使用清單格式。
使用此方法後會觸發 FinishedAddCol 事件,此事件的變數 columnNumber 會告訴我們新增的資料在試算表的哪一個直欄。


將資料新增在橫列:
使用方法:AddRow
使用此方法需要代入兩個參數,sheetName 和 data。
第一個參數是我們試算表裡的工作表的名稱
第二個參數則是我們想要新增到試算表的內容,使用清單格式。
使用此方法後會觸發 FinishedAddRow 事件,此事件的變數 rowNumber 會告訴我們新增的資料在試算表的哪一個橫列。


單一儲存格 寫入/覆蓋:
使用方法:WriteCell
使用此方法需要代入三個參數,sheetName、cellReference 和 data。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是我們想要新增資料到試算表的哪一個儲存格
第三個參數則是我們想要新增到試算表的內容
使用此方法後會觸發 FinishedWriteCell 事件,沒有變數。


試算表直欄 寫入/覆蓋:
使用方法:WriteCol
使用此方法需要代入三個參數,sheetName、colNumbere 和 data。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是我們想要新增資料到試算表的哪一個直欄
第三個參數則是我們想要新增到試算表的內容,使用清單格式。
使用此方法後會觸發 FinishedWriteCol 事件,沒有變數。


試算表指定範圍 寫入/覆蓋:
使用方法:WriteRange
使用此方法需要代入三個參數,sheetName、rangeReference 和 data。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是我們想要新增資料到試算表的範圍
第三個參數則是我們想要新增到試算表的內容,使用二維清單格式。
P.S. 二維清單的長度:第一維看橫列數、第二維看直欄數。
例如:D1 到 F4,有 1 ~ 4 總共四列,第一維清單就要有四筆資料。
D 到 F 總共三欄,第二維清單要有三筆資料。
使用此方法後會觸發 FinishedWriteRange 事件,沒有變數。


試算表橫列 寫入/覆蓋:
使用方法:WriteRow
使用此方法需要代入三個參數,sheetName、rowNumber 和 data。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是我們想要新增資料到試算表的哪個橫列
第三個參數則是我們想要新增到試算表的內容,使用清單格式。
使用此方法後會觸發 FinishedWriteRow 事件,沒有變數。


刪除
試算表指定範圍刪除:
使用方法:ClearRange
使用此方法需要代入兩個參數,sheetName 和 rangeReference。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是我們想要刪除資料的試算表範圍
使用此方法後會觸發 FinishedClearRange 事件,沒有變數。
P.S. FinishedClearRange 事件有時不會觸發,但是試算表的資料有成功刪除!


試算表直欄刪除:
使用方法:RemoveCol
使用此方法需要代入兩個參數,sheetName 和 colNumber。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是我們想要刪除資料的試算表直欄
使用此方法後會觸發 FinishedRemoveCol 事件,沒有變數。


試算表橫列刪除:
使用方法:RemoveRow
使用此方法需要代入兩個參數,sheetName 和 rowNumber。
第一個參數是我們試算表裡的工作表的名稱
第二個參數是我們想要刪除資料的試算表橫列
使用此方法後會觸發 FinishedRemoveRow 事件,沒有變數。


aia 檔案下載:
Demo 影片:
如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝
可以多點幾次喔~~
第一次點讚需使用 Google 或 Facebook 帳號註冊
![[教學文章分享] App Inventor 串接 ChatGPT](https://i0.wp.com/i.imgur.com/CGIkZvo.png?resize=75%2C75&ssl=1)
