預計閱讀時間: 8-12 分鐘
適合對象: 已經有 n8n 基礎,想把試算表當資料庫用的朋友
你將學到:
- Google Sheets 節點 6 個操作怎麼選(含決策樹)
- Append、Get Rows、Append or Update 三大核心操作實測
- Google Sheets Trigger 的 polling 限制與對策
- 掛 AI Agent 當 Tool 的新玩法
- 實戰:Gmail 電子發票自動去重記錄
如果趕時間,可以跳到
Google Sheets 節點功能介紹
你有沒有遇過類似的場景:
每天從 Email 收來的訂單要一筆一筆複製到 Google Sheets 中,或是要手動 key in 其他系統的資料到 Google Sheets
Google Sheets 其實是一個好用的「輕量資料庫」,對個人和小團隊來說很多時候比真的建一個資料庫還方便。
n8n 的 Google Sheets 節點可以幫你自動化這些流程。這篇會帶你看完 6 個操作、 1 個 Gmail 電子發票實戰案例,實測完你會發現大部分 Excel / Google Sheets 日常都能自動化掉。
Resource 二層結構:Document vs Sheet Within Document
n8n 把 Google Sheets 節點的操作拆成兩層:
| Resource | 能做什麼 | 使用情境 |
|---|---|---|
| Document(整份試算表層) | 新增一份新的、刪除整個檔案 | 自動化建立報表檔、每月新開一份 |
| Sheet Within Document(單 sheet 內) | Append / Append or Update / Get Rows / Update / Delete / Clear 等 6 種操作 | 日常資料讀寫,95% 時間都在這層 |
大部分時間都會使用 Sheet Within Document ,但 Document 層在「自動化每月產生一份新報表」這種場景就會派上用場。
操作 1:Append Row
最簡單的新增操作:把資料加到試算表最後一列,不管前面有幾筆。
關鍵參數:
- Document:選試算表(列表 / URL / ID 三種選法都可以)
- Sheet:選 sheet 分頁
- Mapping Column Mode:資料怎麼對應到欄位(下面有獨立專區詳說)
Append 適合無腦新增的情境,例如 log 或是大量資料搜集。
資料直接新增到最後一列,我自己常用在紀錄執行的情況確認,
用 Append 的好處是如果看到重複的資料,代表可能被重複觸發等等,也需要多加確認觀察
如果是同一筆資料已經存在,還是會新增一筆新的,無法判斷比較,有這種需求請用 Append or Update Row。
操作 2:Get Rows
讀整個 sheet 的資料,或用欄位值做簡單篩選。
關鍵參數:
- Data Location on Sheet:自動偵測 header row、第一筆資料列和最後一列,不同格式的試算表可以自訂
- Filters:用欄位值做精確比對,每個條件是
Column+Value - Combine Filters:多個條件用
AND或OR組合
Filters 適合的情境:
城市等於台北狀態等於active- 多條件精確比對:加多個 filter,再用
Combine Filters選AND或OR
目前在 Google Sheet 的 Get Rows 對於篩選資料的彈性還是很不夠
例如簡單篩選多個值得比較,像是時間欄位 > 某個日期等等
通常會全部撈回來再用 Filter, If 等等節點再做篩選
跟一般資料庫的用法這點比較麻煩
操作 3:Append or Update Row
實際跑 n8n 這段時間,6 個操作裡面 Append or Update Row 是最常用的一個。
核心概念: n8n 拿進來的資料,去 Sheet 裡找有沒有一樣的值。找到就更新那一列,找不到就 Append 新的一列。
關鍵參數:Column to Match on
這是 Update 的關鍵。下拉選單會列出 Sheet 的所有 header,你選哪個當比對欄位,就決定了資料去重的比較邏輯。
⚠️ Match 欄位必須唯一,不然會改錯人
好的範例:用「訂單編號」「發票號碼」「Email」這種本來就不會重複的欄位。
不好的範例:用「金額」當 Match Column,兩筆金額一樣的訂單會互相覆蓋。
什麼時候該用 Append or Update Row
- Gmail 觸發的 workflow,怕同一封信重複觸發寫入
- 排程每小時抓 API,怕同一筆資料重複進試算表
- 客戶資料同步,同一個 email 只要留最新的一筆
後面的實戰案例就是 Append or Update Row 的經典用法(Gmail 電子發票去重),想直接看實作可以跳過去。
其他操作一覽
剩下 3 個操作使用頻率較低,用表格帶過:
| 操作 | 說明 | 什麼時候用 |
|---|---|---|
| Update Row | 更新指定列 | 只需要更新,不需要新增 |
| Delete Rows or Columns | 刪除整列或整欄 | 清理舊資料、移除不要的欄位 |
| Clear | 清空內容但保留欄位格式與 header | 每月清空重寫、保留欄位結構 |
💡 Clear 和 Delete 差在哪:Clear 會把整個 Sheet 都清空;Delete 是刪除整列或整欄
決策樹:我該選哪個 operation?
6 個操作看完可能還是霧煞煞,這張決策樹幫你快速選:
文字版速查:
- 寫入怕重複(發票、訂單、Email) → Append or Update
- 寫入不怕重複(log、留言) → Append Row
- 讀取 → Get Rows(簡單精確比對用 Filters;複雜條件接 Filter 節點)
- 修改已知列 → Update Row
- 清內容留格式 → Clear
- 刪整列整欄 → Delete Rows or Columns
Google Sheets Trigger 節點
先釐清一件事:Google Sheets Trigger 和上面介紹的 Google Sheets 節點是兩個完全不同的節點,在 n8n 節點列表裡要分開搜尋。Trigger 節點的用途是「監聽 Sheet 有沒有新資料或被修改」,自動觸發 workflow。
3 個事件類型:
- Row Added:有新的一列加進去才觸發
- Row Updated:有既有列被修改才觸發
- Row Added or Updated:兩種都觸發(最常用)
還有一個蠻實用的進階參數:Columns to Watch。填了某幾個欄位名稱之後,只有那幾欄的值變動才觸發,其他欄位改了不管。這個在「有幾十欄但只想監聽狀態欄」這類場景很省事。
Trigger 最快只能 1 分鐘觸發一次。 這是 polling 的硬限制,不是設定問題。如果你的需求是「同事改了試算表某格就要馬上發 Slack 通知」這種即時場景,等 1 分鐘才跑通常是不夠的。即時需求的做法:在 Google Apps Script 裡用 onEdit ⭐ 觸發器,有變動就打 n8n 的 Webhook URL,這樣可以做到秒級觸發。
實戰教學
案例的需求
財政部每次開電子發票都會寄一封 Email。月底想統計這個月花了多少,一封一封開來看很麻煩,但手動複製到 Excel 更煩。加上 Gmail Trigger 有時候會重複觸發同一封信,直接 Append 的話同一筆發票就進去兩筆,對帳更亂。
這個 workflow 的解法:讓 AI 解析發票內容、用 Append or Update 寫進 Google Sheets,發票號碼當 unique key,不管重複觸發幾次,Sheet 裡都只有一筆。
實戰範例:AI 自動解析發票寫進 Sheets
整體流程是:Gmail Trigger → 解析附件 → AI 結構化解析 → Google Sheets Append or Update。
AI Parser 的部分(用 xAI Grok 從 XML 格式的電子發票抓出欄位)這篇先跳過,重點放 Google Sheets 那段。想看完整 workflow 含 AI 設定的,可以去模板庫:
重點 1:為什麼用 Append or Update 不用 Append?
Gmail Trigger 偶爾會重複抓到同一封信(例如你更改了 workflow 重新執行)。用 Append 的話,同一張發票就進去兩筆,對帳時就麻煩了。
改用 Append or Update Row,以「發票號碼」當比對欄位。相同發票號碼進來的時候,n8n 找到那列就 update,找不到才 append 新的一列。不管 Gmail Trigger 重複幾次,Sheet 裡的發票號碼永遠不會重複。
重點 2:Column to Match on 設定
Column to Match on 下拉選單會列出你試算表的所有 header,選「發票號碼」就對了。
不要選「金額」當 match column:不同店家的發票金額可能一樣(例如剛好都是 79 元),選金額當比對欄位的話,新的 79 元發票進來就會把舊的那筆蓋掉。
重點 3:Mapping mode 選 Define below
AI 輸出的 JSON 欄位名通常和你 Sheet 的 header 不一致。舉例:AI 輸出 invoice_number,但 Sheet header 叫「發票號碼」,Auto-map 就對不上了。
這個 workflow 統一用 Define below(逐欄手動對應),每一欄用 expression 明確指定 AI 輸出的哪個 key 對應 Sheet 的哪個欄位,上游怎麼命名都無所謂。
常見問題
相關推薦
總結
Google Sheets 節點是 n8n 裡用途最廣的節點之一,對個人和小團隊來說它就是一個隨手可用的輕量資料庫。搞懂 Append、Get Rows、Append or Update 三個核心操作,加上 Mapping mode 怎麼選,大部分日常試算表自動化都能搞定。遇到需要監聽變動的場景,Trigger 節點可以接上,只是要記住 1 分鐘 polling 的限制。想再往上走,4.x 的 AI Agent Tool 整合也已經就位,等我之後出 AI Agent 專文再一起玩。