Google Sheets(Google 試算表)自動化(如 App Script)?

Google Sheets 中進行自動化,最強大的工具就是 Google Apps Script(GAS)。這是 Google 為自家 Workspace 所提供的 JavaScript 平台,可以幫你在試算表中實現:

  • 自動寄信
  • 自動整理資料
  • 自動匯出 PDF
  • 定時排程任務(如每天更新報表)

🧰 Google Sheets 自動化教學:用 Apps Script 開始你的第一支腳本!


✅ 一、開啟 Apps Script 編輯器

  1. 打開你的 Google Sheet
  2. 點選上方選單:擴充功能 > Apps Script
  3. 會開啟一個新的編輯器(像是線上 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:每天定時執行某個任務(加排程)

  1. 寫好你想自動執行的函數(如寄報表)
  2. 點選 Apps Script 編輯器上方的「⏱ 觸發器」圖示
  3. 建立觸發器(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?

📘 學習建議:

  1. 熟悉 JavaScript 基礎(變數、函數、陣列)
  2. 了解 Spreadsheet 的物件架構(Spreadsheet → Sheet → Range)
  3. 常查官方文件:
    📖 Google Apps Script Docs

🧩 想實作?這裡有幾個應用範例挑戰:

挑戰主題說明
🔁 每日將某 Sheet 自動複製成新日期命名的 Sheet自動建立資料留存備份
📥 表單回應後自動整理到多個 Sheet根據條件自動分類資料
📊 匯總多個 Sheet 的資料到 Dashboard自動彙整多個月報表到一張表中
🧾 每月自動寄送 PDF 報表給客戶自動化業務簡報發送

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *