在 Google Sheets 中進行自動化,最強大的工具就是 Google Apps Script(GAS)。這是 Google 為自家 Workspace 所提供的 JavaScript 平台,可以幫你在試算表中實現:
- 自動寄信
- 自動整理資料
- 自動匯出 PDF
- 定時排程任務(如每天更新報表)
🧰 Google Sheets 自動化教學:用 Apps Script 開始你的第一支腳本!
✅ 一、開啟 Apps Script 編輯器
- 打開你的 Google Sheet
- 點選上方選單:
擴充功能 > Apps Script - 會開啟一個新的編輯器(像是線上 VSCode)
你會看到一個預設的 Code.gs 檔案,以及一個 function myFunction()。
✅ 二、基本語法範例(Script 語言是 JavaScript)
📬 範例 1:寄出選定資料到 Email
function sendDataByEmail() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("報表");
var data = sheet.getRange("A2:B2").getValues(); // 抓取第一筆資料
var email = "[email protected]"; // 替換成你的信箱
var subject = "報表通知";
var message = "今天的報表資料如下:\n\n" + data[0][0] + ", " + data[0][1];
GmailApp.sendEmail(email, subject, message);
}
📆 範例 2:每天定時執行某個任務(加排程)
- 寫好你想自動執行的函數(如寄報表)
- 點選 Apps Script 編輯器上方的「⏱ 觸發器」圖示
- 建立觸發器(Trigger):
- 選擇函數名稱(如
sendDataByEmail) - 選擇「時間驅動」 → 設定每天早上 8 點執行
- 選擇函數名稱(如
✅ 這樣就完成每日自動執行!
📋 範例 3:將資料自動複製到另一個 Sheet
function copyData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName("來源");
var target = ss.getSheetByName("目標");
var data = source.getRange("A2:C10").getValues();
target.getRange("A2:C10").setValues(data);
}
📄 範例 4:自動匯出 PDF 並寄出
function exportPdfAndSend() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var url = sheet.getUrl();
var blob = UrlFetchApp.fetch(url.replace(/edit$/, 'export?format=pdf')).getBlob();
GmailApp.sendEmail("[email protected]", "自動匯出的 PDF", "請見附件", {
attachments: [blob]
});
}
📌 這個版本是簡化版,如果要輸出特定工作表或加設定,可以再優化。
🧠 其他常見自動化範例
| 功能 | 說明或用途 |
|---|---|
| ✅ 自動根據日期新增行 | 每週建立新資料行、表格更新用 |
| ✅ 表單提交自動回覆 | Google 表單 + Sheet + Gmail |
| ✅ 自動資料備份 | 定期複製 Sheet 到另一個 Spreadsheet |
| ✅ 自動清除重複資料 | removeDuplicates() 或自訂邏輯 |
| ✅ 自動產生 ID 或條碼 | 可結合 QRCode API,自動產編碼欄位 |
🚀 如何快速學會 Apps Script?
📘 學習建議:
- 熟悉 JavaScript 基礎(變數、函數、陣列)
- 了解 Spreadsheet 的物件架構(Spreadsheet → Sheet → Range)
- 常查官方文件:
📖 Google Apps Script Docs
🧩 想實作?這裡有幾個應用範例挑戰:
| 挑戰主題 | 說明 |
|---|---|
| 🔁 每日將某 Sheet 自動複製成新日期命名的 Sheet | 自動建立資料留存備份 |
| 📥 表單回應後自動整理到多個 Sheet | 根據條件自動分類資料 |
| 📊 匯總多個 Sheet 的資料到 Dashboard | 自動彙整多個月報表到一張表中 |
| 🧾 每月自動寄送 PDF 報表給客戶 | 自動化業務簡報發送 |