常用函式(GAS)
常用函式
Simple Triggers  |  Apps Script  |  Google for Developers
doGet()
處理GET請求
code:javascript
function doGet(e) {
const target = e.parameter.target;
getHandler(target);
}
doPost()
處理POST請求
code:javascript
function doPost(e) {
const parameter = JSON.parse(e.postData.contents);
const target = parameter.target;
postHandler(target);
}
event.parameter和event.parameters傳入的內容結構不同
Web Apps | Apps Script | Google Developers
event.parameter:
event.parameters:
onEdit()
於操作時觸發函式
google apps script - onEdit trigger for specific sheets in a spreadsheet? - Stack Overflow
「Triggers」
「Add Trigger」
「Select event type」
「On edit」or「On change」
「Executions」
確認執行狀況
回傳資料的格式
字串
return ContentService.createTextOutput("回傳字串");
HTML
return HtmlService.createHtmlOutput(HTMLString);
JSON
code:javascript
const JSONString = JSON.stringify(result);
return ContentService.createTextOutput(JSONString).setMimeType(
ContentService.MimeType.JSON
);
讀取表單
SpreadSheet
Class SpreadsheetApp | Apps Script | Google Developers
SpreadsheetApp.getActiveSpreadsheet()
SpreadsheetApp.openById(SpreadSheetID)
Sheet
Class Sheet | Apps Script | Google Developers
Spreadsheet#getSheetByName(sheetName)
Spreadsheet#getSheets()[sheetIndex]
Range
Sheet#getRange(row, column)
行與列起始座標值是1,不是0
Sheet#getRange(row, column, numRows)
Sheet#getRange(row, column, numRows, numColumns)
Sheet#getRange(cellRangeNotation)
getRange("A1:B2")
Range#getValues()
const values = sheet.getRange("A1:C2").getValues();
const values = sheet.getRange("A1:C2").getValues().flat();
Sheet#getSheetValues(startRow, startColumn, numRows, numColumns)
行與列座標起始值是1,不是0
寫入表單
Range
Range#setValues(values)
code:javascript
const rowLength = array.length;
const colLength = array0.length;
sheet.getRange(1, 1, rowLength, colLength).setValues(array);
https://stackoverflow.com/questions/61115863/how-do-you-resolve-a-the-parameters-number-dont-match-the-method-signature
[[1, 2], [3, 4]]
Class Utilities | Apps Script | Google Developers
Class UrlFetchApp | Apps Script | Google Developers
UrlFetchApp.fetch(url[, params])