Google Sheet 如何製作 QR Code?3 種方法比較與自動生成步驟

Published on: | Last updated:

好的,Google Sheet 產生 QR Code… 怎麼做?

今天來聊聊 Google Sheet 產生 QR Code。最近剛好在弄一個活動報名的東西,要大量產生帶有不同網址的 QR Code,一個一個做真的會瘋掉。所以就研究了一下怎麼在 Google Sheet 裡面直接搞定。這篇算是我的筆記,整理一下找到的方法。

其實核心概念很簡單,就是讓 Google Sheet 去 call 一個能產生 QR Code 圖片的服務,然後把圖片顯示在儲存格裡。方法有好幾種,從最簡單的公式到需要寫一點點程式碼的都有。下面會一個一個講。

先說結論:三種方法快速比較

時間有限的人直接看這個表。簡單講,沒特殊需求用方法一最快,但有失效風險。要穩定、功能多就用附加元件,但可能要錢或有隱私顧慮。懂一點程式碼、想完全客製化就用方法三,最強大也最麻煩。

比較項目 方法一:IMAGE 函數 方法二:附加元件 (Add-on) 方法三:Google Apps Script
上手難度 超簡單,就一個公式。 也很簡單,點幾下就裝好了,有圖形介面。 需要懂一點點 JavaScript 程式碼,比較複雜。
客製化程度 很低。頂多改改圖片大小。 看元件功能。有些可以改顏色、加 Logo,通常要付費版。 最高。你想得到的都能做,例如結合 Gmail 自動寄出。
穩定性 有風險。因為用的 Google Chart API 其實已經被官方標記為「已過時」(deprecated)。 雖然還能用,但不知道哪天會關掉。 相對穩定,畢竟是上架到市集的產品,有專人維護。 自己寫的程式碼自己負責,只要 API 沒問題就沒問題。可以串接更穩定的第三方 QR Code API。
成本 免費。 通常有免費版,但功能受限。進階功能,比如大量生成或客製化,常常要收費。 免費(除非你串接的第三方 API 要收費)。
最大優點 快!公式複製貼上,一拉就全部產生完畢。 方便,不用寫程式,功能整合得很好,適合非技術人員。 完全自動化與客製化。可以做到「當 A 欄填入資料,B 欄就自動產生 QR Code 並存到雲端硬碟」。
最大缺點 API 已過時,說不定哪天就不能用了。 真的,很多論壇都在討論這個。 需要授權。安裝時會要求讀取你的試算表、甚至雲端硬碟的權限,有資安跟隱私的考量。 有學習曲線,要花時間看文件、除錯。

方法一:最簡單的 IMAGE 函數法

這個方法是最多教學文章在講的,因為真的太簡單了。 核心就是用 IMAGE() 這個函數,去抓 Google Chart API 產生的 QR Code 圖片。

假設你的網址資料放在 A2 儲存格,那你就在 B2 儲存格貼上這個公式:

=IMAGE("https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=" & ENCODEURL(A2))

稍微解釋一下:

  • IMAGE(): Google Sheet 內建函數,用途就是把一個圖片網址變成儲存格裡的圖片。
  • "https://chart.googleapis.com/chart?...": 這就是產生圖片的 API 網址。
  • chs=200x200: 指的是 QR Code 圖片的大小,可以自己改成 150x150 或 300x300。
  • cht=qr: 告訴 API 我們要產生的圖表類型是 QR Code。
  • chl=: 這後面要接的就是你想變成 QR Code 的內容,通常是網址。
  • & ENCODEURL(A2): 這邊是重點。& 用來串接字串,把 A2 的內容接到 chl= 後面。ENCODEURL() 則是為了把網址裡的特殊字元(例如空格或中文字)轉換成瀏覽器看得懂的格式,避免出錯。

不過呢,就像前面表格說的,這個 Google Chart API 其實官方已經不推薦使用了。 在很多開發者社群,像 Drupal 或 Stack Overflow,都有人回報說這個 API 有時候會失效或回傳 404 錯誤。 雖然目前大部分情況下還能動,但如果你是要用在很重要的商業用途,可能就要考慮一下這個風險。

IMAGE 函數搭配 Google Chart API 的示意圖
IMAGE 函數搭配 Google Chart API 的示意圖

方法二:功能最完整的附加元件 (Add-on)

如果你不想碰公式,也不想寫程式,那用附加元件 (Add-on) 是最無腦的選擇。直接去 Google Workspace Marketplace 搜尋 "QR Code Generator" 就會找到一堆。

優點很明顯:

  • 圖形化介面:通常會有個側邊欄,讓你用點選的方式設定 QR Code 的內容、大小、顏色,甚至上傳 Logo。
  • 批次處理:可以一次選取多個儲存格,然後一次產生所有 QR Code。有些還能直接幫你把圖片存成 PNG 檔到 Google Drive。
  • 額外功能:有些進階的服務,像是 QR TIGER,提供的是「動態 QR Code」。 意思就是 QR Code 產生後,你還能隨時更改它導向的網址,甚至設定密碼保護、追蹤掃描次數等,這是一般靜態 QR Code 做不到的。

但天下沒有白吃的午餐。缺點也很實際:

  1. 費用:免費版通常只能產生少量或是有浮水印。要解鎖完整功能,像是高解析度、無限制生成、客製化外觀,通常都需要付費訂閱。
  2. 隱私與權限:這是我自己比較在意的點。安裝附加元件時,它會要求你授權存取你的 Google Sheets 檔案,有的甚至會要求「查看、編輯、建立和刪除您所有的 Google 文件」或是「在您不使用時執行」。 這等於是把家裡的鑰匙交給別人。雖然大部分知名廠商都有隱私政策,但在歐美對 GDPR 這類法規比較敏感的環境,大家會更小心。反過來說,在台灣,使用者可能比較習慣直接按「同意」,但如果你的試算表裡有客戶資料或敏感數據,用附加元件前真的要三思,仔細看一下它要求的權限範圍。
Google Workspace Marketplace 中的 QR Code 附加元件選項
Google Workspace Marketplace 中的 QR Code 附加元件選項

方法三:最強大的 Google Apps Script 自動化

最後這個方法,是給喜歡折騰、追求極致自動化的人。Google Apps Script (GAS) 是一個用 JavaScript 為基礎的腳本語言,可以讓你直接在 Google Workspace 的各種應用(包含 Sheets)裡寫程式,擴充功能。

用 GAS 產生 QR Code 的好處是彈性最大。你可以寫一個自訂函數,例如叫做 generateQR(data),用起來就跟內建函數一樣。 而且,你可以不依賴那個已過時的 Google Chart API,改串接其他更穩定、功能更強的第三方 QR Code API,例如 apyhub, QuickChart 等。

下面是一個簡單的實作步驟:

  1. 打開指令碼編輯器:在你的 Google Sheet 檔案中,點選「擴充功能」>「Apps Script」。
  2. 貼上程式碼:把下面的程式碼複製貼到編輯器裡,然後儲存專案。這段程式碼定義了一個叫做 QRCODE 的自訂函數。
/**
 * 產生 QR Code 的自訂函數
 * @param {string} data 要編碼成 QR Code 的資料.
 * @param {number} size 圖片大小 (像素).
 * @return The image formula.
 * @customfunction
 */
function QRCODE(data, size = 200) {
  if (!data) {
    return "請提供資料";
  }
  const qrApiUrl = "https://chart.googleapis.com/chart?";
  const params = {
    cht: "qr",
    chs: `${size}x${size}`,
    chl: encodeURIComponent(data),
    choe: "UTF-8"
  };
  
  const url = qrApiUrl + Object.keys(params)
    .map(key => `${key}=${params[key]}`)
    .join('&');
    
  return `IMAGE("${url}", 4, size, size)`;
}
  1. 回到試算表使用:現在你可以在儲存格裡像用 SUM 或 VLOOKUP 一樣使用它了。假設資料在 A2,就在 B2 輸入:=QRCODE(A2)=QRCODE(A2, 150) 來指定大小。

這只是最基本的。進階一點,你可以結合觸發器 (Triggers),做到:

  • 當我在 A 欄填入新網址時,B 欄就「自動」產生 QR Code,完全不用手動拉公式。
  • 當 QR Code 產生後,自動把這個 Code 透過 Gmail 發送給指定的人。
  • 將產生的 QR Code 圖片檔案,自動儲存到 Google Drive 的特定資料夾。

你看,這完全就是一個客製化的自動化工作流程了。雖然一開始設定比較麻煩,但一次搞定,長久下來可以省下非常多時間。

Google Apps Script 編輯器與自訂 QR Code 函數程式碼
Google Apps Script 編輯器與自訂 QR Code 函數程式碼

實際應用場景與變體

所以,學會這個到底能幹嘛?其實應用場景蠻廣的。

  • 庫存管理:為每個商品產生一個獨立的 QR Code,貼在商品上。掃一下就能連到試算表裡的該商品資料列,快速查看庫存、規格。
  • 活動報到:就像我一開始的需求,把報名者的專屬報到網址變成 QR Code,寄給他們。現場用手機或平板掃一下,就能連結到 Google 表單自動完成報到。
  • 設備巡檢:把 QR Code 貼在每台機器設備上,巡檢人員掃了之後,直接開啟回報表單,填寫設備狀況。
  • 製作 vCard (電子名片):把你的聯絡資訊 (姓名、電話、Email) 用特定格式的文字串起來,再產生 QR Code。別人一掃就能直接把你的聯絡方式存到手機通訊錄。

常見錯誤與修正

在操作過程中,你可能會遇到一些問題。這裡列幾個我踩過的坑。

  • 公式出現 `#ERROR!` 或 `#N/A`:
    • 檢查網址:最常見的原因是你的 chl= 後面接的內容有問題。確認一下你的資料來源儲存格 (例如 A2) 不是空的。
    • 檢查 ENCODEURL:如果你的網址包含 &? 等特殊字元,而且你忘了用 ENCODEURL() 包起來,API 可能會解析錯誤。
  • 圖片顯示「您需要授權才能查看此圖片」:
    • 這是 Google 為了安全起見的提示。 當你第一次在試算表中使用 IMAGE 函數連結到外部服務時,它會跳出來。通常儲存格上方會有一個藍色的「允許存取」按鈕,點一下就好了。
  • Apps Script 自訂函數沒反應:
    • 名稱錯誤:確定你在儲存格輸入的函數名稱,跟你 Apps Script 裡 function 後面寫的名稱一模一樣,大小寫要完全符合。
    • 忘記儲存:在 Apps Script 編輯器裡修改完程式碼後,一定要按上面的「儲存專案」圖示。
    • 權限問題:第一次執行自訂函數時,系統可能會跳出一個授權請求視窗,問你是否同意這個指令碼執行。你必須點選「審查權限」並「允許」,函數才能正常運作。

你的場景,適合哪一種方法?

好了,說了這麼多,其實沒有最好的方法,只有最適合你的方法。我想這篇文章應該把各種方法的優缺點都講清楚了。

現在換你思考看看:你需要在 Google Sheet 裡產生 QR Code 是為了什麼?是一次性的報告,還是需要長期、大量、自動化的流程?你對處理資料的隱私有多在意?留言分享一下你的使用場景,以及你覺得哪種方法最適合你吧!

Related to this topic:

Comments

  1. Guest 2025-10-23 Reply
    當了爸媽之後啊,這種家長會還有校外教學什麼的,那些雜七雜八的資料真的是滿腦子糾結。光是名單就寫到手痠,以前就是一張紙在那邊慢慢抄…後來,開始接觸Google Sheet,又弄QR Code,欸整個速度快太多。不太需要再人手點名,我會先做一個簡單的出席表格,每個小孩給他自己的QR Code,到現場直接手機掃一下,一下就知道誰還沒到。有幾次老師看到也說蠻省事的。 另外有次剛好要聯絡班級群組,就順便把課表什麼的都塞進Google Sheet,再生個QRCode,上傳給大家,不管是Line、Email都能轉,一掃馬上看到孩子有什麼行程。像以前找半天簡訊現在根本不用。 這整套其實不難喔,隨便抓一些免費小工具就能生出來。不順手或卡住也是常有,那時候上YouTube搜一下就有教學。我覺得對於比較懶得搞複雜流程的爸媽其實很夠用了,有興趣可以玩看看~
  2. Guest 2025-09-12 Reply
    業界大大推薦!QR Code真的超級實用,尤其在表單管理和資料追蹤上。我之前在專案管理就用過,確實省了不少時間。不過要注意掃描效果和清晰度啦~
  3. Guest 2025-08-10 Reply
    哇!在矽谷工作時學到超實用的QR Code技巧,真的讚呆了!Google Sheet這個小工具簡直是工作效率的救星,尤其是行動端操作更方便。趕快跟大家分享這個超酷的小技能!
  4. Guest 2025-06-11 Reply
    哇!這篇文章太實用了!剛好最近專題需要整理資料,QR Code真的是超級方便的工具。學妹推薦這個技巧真的很讚,希望可以趕快學起來提升工作效率!
撥打專線 LINE免費通話