擴充 Google 試算表

Google Apps Script 可讓您透過 Google 試算表執行新穎又有趣的操作。你可以 使用 Apps Script 新增自訂選單。 Google 試算表對話方塊和側欄。此外, 可讓您編寫自訂函式 可以將試算表與其他 Google 服務,例如日曆、雲端硬碟和 Gmail。

大多數專為 Google 試算表設計的指令碼都會操控陣列 與試算表中的儲存格、列和欄互動。如果不是 Codecademy 提供熟悉的 JavaScript 陣列 陣列的絕佳訓練模組。 (請注意,這堂課程並非由 Google 製作,與 Google 無關)。

如要快速瞭解如何將 Apps Script 與 Google 試算表搭配使用,請參閱 5 分鐘的快速入門指南 巨集、選單和自訂函式

開始使用

Apps Script 包含特殊 API,可讓您透過程式輔助方式建立、讀取及編輯 Google 試算表。Apps Script 能以兩大方式與 Google 試算表互動 :任何指令碼都能建立或修改試算表,前提是指令碼使用者必須 適當權限 或使用指令碼 繫結至試算表, 可讓指令碼以特殊的方式變更使用者介面或 該試算表已開啟。如要建立已繫結的指令碼,請在 Google 試算表中依序選取「擴充功能」「Apps Script」

試算表服務把 Google Google 試算表為格狀檢視,採用二維陣列。為了擷取資料 必須能存取資料所在的試算表 取得儲存資料的試算表範圍,然後取得 輸入儲存格的值Apps Script 透過讀取 結構化資料,並為這些物件建立 JavaScript 物件。

讀取資料

假設您有一份產品名稱和產品編號清單 ,如下圖所示。

以下範例說明如何擷取及記錄產品名稱和產品 數字。

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

查看記錄

如要查看記錄的資料,請在指令碼編輯器頂端按一下 執行記錄

寫入資料

如要將資料 (例如新的產品名稱和編號) 儲存至 請將以下程式碼加到指令碼的結尾處。

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

上述程式碼會在試算表底部附加新資料列,並指定值。執行這個函式後,試算表就會新增一列。

自訂選單和使用者介面

你可以新增自訂選單、對話方塊和側欄,自訂 Google 試算表。如要瞭解建立選單的基本概念,請參閱 選單指南。如要瞭解如何自訂 對話方塊的內容,請參閱 HTML 服務指南

你也可以在 試算表;當使用者按一下圖片,或 繪圖。詳情請參閱「Google 試算表中的圖片和繪圖」。

如果您計劃將自訂介面 外掛程式,然後按照 符合樣式指南,確保與 以及 Google 試算表編輯器的樣式和版面配置

正在連線至 Google 表單

Apps Script 可讓您透過以下方式連結 Google 表單與 Google 試算表: 表單試算表服務。這項功能 可以根據試算表中的資料自動建立 Google 表單。 您也可以使用 Apps Script 的觸發事件 (例如 onFormSubmit),在使用者回應表單後執行特定動作。如要進一步瞭解如何連結 Google 試算表和 Google 表單,請前往「管理 Google 表單回應功能 5 分鐘快速入門導覽課程。

格式設定

Range 類別提供 setBackground(color) 等方法,可存取及修改儲存格或儲存格範圍的格式。以下範例說明如何設定範圍的字型樣式:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

驗證資料

您可以透過 Apps Script 存取 Google 試算表中的現有資料驗證規則,或建立新的規則。舉例來說,下列範例說明如何設定資料驗證規則,讓使用者只能在儲存格中輸入 1 到 100 之間的數字。

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

如要進一步瞭解如何使用資料驗證規則,請參閱 SpreadsheetApp.newDataValidation()DataValidationBuilder, 和Range.setDataValidation(rule)

圖表

Apps Script 可讓您將圖表嵌入試算表中,以反映資料表中的資料, 特定範圍的資料以下範例會產生嵌入式長條圖,假設您在 A1:B15 儲存格中使用可繪製的資料:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

如要進一步瞭解如何將圖表嵌入試算表,請參閱 EmbeddedChart 和特定圖表建構工具 (例如 EmbeddedPieChartBuilder)。

Google 試算表的自訂函式

自訂函式與內建的試算表函式 (例如 =SUM(A1:A5)) 類似,但您必須使用 Apps Script 定義函式的行為。例如,您可以建立 函式 in2mm(),可以將值從英寸轉換為公釐,然後使用 您在試算表中輸入 =in2mm(A1)=in2mm(10),即可在 儲存格。

如要進一步瞭解自訂函式,請試試 選單和自訂函式 5 分鐘的快速入門導覽課程,或查看更多資訊 自訂函式指南

巨集

巨集是另一種透過 Google 試算表 UI 執行 Apps Script 程式碼的方式。自訂功能與自訂功能不同,只要使用鍵盤快速鍵或 「Google 試算表」選單詳情請參閱「Google 試算表巨集」。

Google 試算表外掛程式

外掛程式是經過特別封裝的 Apps Script 在 Google 試算表中執行且可安裝 如何透過 Google 試算表外掛程式商店下載如果您已為 Google 試算表開發指令碼 想要與全世界的人分享 使用 Apps Script 時 將指令碼發布為 外掛程式,其他使用者就能從外掛程式商店安裝。

觸發條件

繫結至 Google 試算表檔案的指令碼 可以使用簡單觸發條件,例如 onOpen()onEdit() 即可在使用者編輯後自動回覆 即可開啟或編輯該試算表。

與簡單觸發條件一樣,可安裝的觸發條件可讓 Google 試算表在特定事件發生時自動執行函式。可安裝 然而,觸發條件比簡單的觸發條件和支援更具彈性 以下事件:開啟、編輯、變更、表單提交和時間導向 (時鐘)。