-
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
- 擁有getRange的方法
- 可以使用getRangeByName
-
const sheet = SpreadsheetApp.getActiveSheet()
- 擁有getRange的方法
- 不可使用getRangeByName
- setConditionalFormatRules
-
const myChart = SpreadsheetApp.getActiveSpreadsheet() // spreadsheet .getSheetByName("圖表") // Sheet .newChart() // EmbeddedChartBuilder .setChartType(Charts.ChartType.PIE) // https://developers.google.com/apps-script/reference/charts/chart-type.html .addRange(curRange) //.setOption('hAxis.title', `count of ${titleName}`) // https://developers.google.com/apps-script/chart-configuration-options .setOption('title', titleName) // https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart-builder#setoptionoption,-value .setOption('applyAggregateData', true) sheetOutput.insertChart(myChart)
-
SpreadsheetApp.newDataValidation() : return DataValidationBuilder
-
SpreadsheetApp.newConditionalFormatRule(): return ConditionalFormatRuleBuilder
-
Protect
優點:
- 便利: 像一般寫函數一樣,寫完在外面就能馬上用。
- 大家都可以用: 沒有權限的限制 (但也就表示不能牽扯任何有關權限的函數)
❗ 當您生成副本的時候,腳本也會複製,是複製該腳本,不是共用。
也就是複製完之後,如果您在原腳本再繼續加上函數,對複製的腳本是沒用的, 必須在複製的腳本也打開apps script編寫才有效。
-
寫函數註解,支持JsDoc
範例
/** * Multiplies the input value by 2. * * @param {number} input The value to multiply. * @return The input multiplied by 2. * @customfunction */ function DOUBLE(input) { return input * 2; }
Note: 很多東西都不支持,基本上能用的就@param @return @customfunction 就這幾個,
其中@customfunction要加上去,不然看不到JsDoc
注意!自定義函數不能使用{
Range.merge
,setValue
, ...}也就是不能改儲存格的內容,而數值能調整的,也只有當前的儲存格開始,不能指定,且也只能設定內容,不能設定公式如果你想解放以上的內容,可以有幾種辦法
- custom menu:
onOpen
- button: 寫好你的script,建立按鈕之後在上面打上你的函數名稱即可
- dialog or sidebar
- simple or installable trigger:
onOpen
,onInstall
,onEdit
, ...
相關連結:
- Google第三方應用程式服務管理
- scope調整/manifests: 選擇GAS的腳本,進入之後選擇設定,將appsscript.json`打勾,之後可以調整scopes
- 名稱不可以和內建函數重複
- 函數定義只能用傳統的語法function開頭
- 函數結尾不可以使用
_
,這視為私有的函數 - 沒有硬性的大小寫規定。(google一般是用全大寫)
您可以在spreadsheet面板上方
Extensions -> Add-ons
去下載或者管理附加元件
例如下載別人寫好的函數之類的