Title1
Title2
Title3
Login
Link
Search
教學頻道
中信金融管理學院
點二下資訊社
新化社區大學
GAS+購物車開發
GAS專案
GAS+購物車開發
Google表單實戰電商購物車
GAS+LineBot開發
外帶內用管理
購物車管理
線上打卡系統管理
萬用表單5
LineBot 線上書籍
PHP專案
網站程式設計-PHP(10502)
網站程式設計-PHP
PHP SMARTY 樣板引擎
SMARTY樣板
課程教材
雲端工具入門
行動應用企劃人員養成班
萬用表單5
GAS+LineBot開發
研習
萬用表單5
鐵人賽-Google Apps Script整合運用
GAS+LineBot開發
樂齡3C學習不斷電
臺東專科學校
GAS 開發 LineBot 自動接單系統
德鍵
112行動應用企劃人員養成班
111網頁前端設計工程師培訓班
110網頁前端設計工程師培訓班
網頁前端設計工程師培訓班
old
網頁前端設計與開發運用培訓班
Javascript & JQUERY
免費釋出專案
萬用表單
自動資料查詢
台南社大
113-01-雲端工具入門
112-02-AI自動管理
112-01-用QRCODE打造自動化環境
110-01-用雲端打造自動化環境
用雲端打造自動化環境
Google雲端智慧王
讓雲端工具提昇工作效率
Google 速學工作術
台南市總圖
教你如何使用LINE Bot機器人增加工作效率
Google雲端工具基礎應用
Google雲端工具進階應用
工作自動化與行銷(台南社大)
全部教材
台南市人力發展中心
Google工具應用實務班
企業課程
鐳達實業有限公司
GAS研習-20200726
中正大學-GAS研習
將軍圖書館
Google雲端工具基礎應用
Google雲端工具進階應用
南方創客
GitHub 衍伸應用
Google 應用工作術
永康社大
用雲端打造自動化環境(110-春季班)
用雲端打造自動化環境
南關社大
電腦、手機生活應用
遠端桌面
公司業務
傳送檔案
adwcleaner
W10 更新
客戶網站
最近完工
深雋設計有限公司
新化社大校務系統
靚品科技有限公司
5C Precision Co., Ltd.
BALANCE 1
RWD網站
東北關廟麵
曼馱有限公司
永宸昕有限公司
昌美實業社
形象網站
勇信機械有限公司
GAS專案
聯絡我們&案件委託
所有書籍
「鐵人賽-Google Apps Script整合運用」目錄
MarkDown
4. 在試算表儲存資料(三)
1. Google Apps Script介紹
2. 在試算表儲存資料(一)
3. 在試算表儲存資料(二)
4. 在試算表儲存資料(三)
5. 專案授權&在試算表撈出資料
6. Web 服務&API 服務
7. GAS樣版引擎
8. 建立共用函式
9. 建立路由與請求
10. 全域變數&權限
11. Bootstrap Table(一)
12. Bootstrap Table(二)
13. 表單頁面(一)
14. 表單頁面(二)
15. 表單結構
6. Web 服務&API 服務
鐵人賽-Google Apps Script整合運用 ========================== Google雲的檔案、資料夾權限 ---------------- 1.
一般存取權:限制、知道連結的任何人
2.
角色:檢視者、加註者、編輯者
### 專案授權 1.
至少要有「檢視」的權限
2.
將試算表的網址 /
edit#gid=0
=> /
copy
3.
「檔案 / 建立副本」
4.
例:「[
鐵人賽(錄影)
](https://docs.google.com/spreadsheets/d/11rpct0xBnBh-mLzQQCer3iI2rhGCBKG5Q00QTUbJW5k/copy)」
### 資料種類 1.
標題
2.
資料
1. 所有資料:取得資料會是一個二維陣列型態,陣列索引第1筆為「0」,但在試算表則為「2」,故差值為 2 2. 流水號資料:需要用它來計算最大值 3. ![](https://i.imgur.com/feOufZp.png) ### 取得標題列 1.
rowIndex = 1
2. getSheetValues( startRow, startColumn, numRows, numColumns) startRow:起始列的位置 startColumn:起始欄的位置 numRows:資料列數 numColumns:資料欄數
3. *取得標題列* ```javascript /*======================================== 取得標題列 =========================================*/ function get_head_custom() { let ss = SpreadsheetApp.getActiveSpreadsheet() let ws = ss.getSheetByName('day2'); let head_custom = ws.getSheetValues(1, 1, 1, ws.getLastColumn())[0]; console.log(head_custom); return head_custom; } ``` ### 取得資料 1.
必須判斷是否有資料,若 getLastRow() < 2 則 無資料,請返回 \[\]
2.
資料從 rowIndex = 2 開始,須扣掉 標題列,numRows - 1
3.
取得資料 ```javascript /*======================================== 取得資料 =========================================*/ function get_data_custom() { let ss = SpreadsheetApp.getActiveSpreadsheet() let ws = ss.getSheetByName('day2'); if (ws.getLastRow() < 2) return [];//無資料 let data_custom = ws.getSheetValues(2, 1, ws.getLastRow() - 1, ws.getLastColumn()); console.log(data_custom); return data_custom; } ``` 4.
結果:如圖 陣列索引 與 工作表列指標,剛好 差 2
5. ![](https://i.imgur.com/5TK8eRe.png) 6. 取得流水號的最大值 除了用「getSheetValues()」,也可以用 「getRange」再取值「getValues()」 getRange:參數只給前面2個=>取得一格資料、前面3個=>取得一欄資料、全部4個=>所有資料 Math.max.apply(Math, colArray);//在嵌套數組展開並找到其中的最大值 ```javascript /*======================================== 返回流水號 最大值+1 =========================================*/ function maxSn() { let ss = SpreadsheetApp.getActiveSpreadsheet() let ws = ss.getSheetByName('day2'); let colIndex = 1; if (ws.getLastRow() < 2) return 1;//尚無資料,返回1 let colArray = ws.getRange(2, colIndex, ws.getLastRow() - 1).getValues();//getSheetValues(2, colIndex, ws.getLastRow() - 1, 1) console.log(colArray); let maxi = Math.max.apply(Math, colArray);//在嵌套數組展開並找到其中的最大值 console.log(maxi); return maxi + 1; } ``` 這個函式,留到後面正式要「新增記錄」,再來調用