← 全部文章

用 Apps Script 從 Google 表格批次生成動態 QR Code

2026-10-12 · 更新於 2026-10-26 api developers google-sheets automation

要從 Google 表格生成動態 QR Code,每行放一個連結和你自己的業務編號,把一段簡短的 Apps Script 貼上到表格裡,把 API 令牌存進指令碼屬性,然後從菜單執行。指令碼會把這些行每 100 行一批發送給 QR Maker REST API,再把每一行的短連結寫回表格。再次執行時只會補全還空著的行,所以永遠不會重複建立。

什麼時候適合用這個方法

大多數產品清單、桌位安排和活動跟蹤表本來就放在電子表格裡。如果團隊裡有人手動維護這份清單,從同一張表生成 QR Code,就能讓清單和 QR Code 保持同步,不需要開發人員參與。典型場景有:給每個產品 SKU 做一個用在包裝上的碼,給每張桌子或每個房間做一個碼,或者同一個活動給每個銷售代表、每個門店各做一個碼。

如果你需要在自己的應用裡生成 QR Code,就改從你的伺服器呼叫 API。這部分見 REST API 教程。

準備工作

external_id 是你給這一行定的編號:SKU、桌號、銷售代表編碼等。它在你的帳戶內必須唯一,可以包含字母、數字、點、下劃線、冒號和連字元。

第 1 步:新增指令碼

開啟表格,依次選擇「擴充套件程式」(Extensions)→「Apps 指令碼」(Apps Script),刪掉佔位程式碼,貼上 google-sheets.gs 的內容,然後儲存專案。

第 2 步:安全地儲存令牌

在 Apps Script 編輯器裡開啟「專案設定」(Project Settings),滾動到「指令碼屬性」(Script properties),新增一個名為 QR_TOKEN 的屬性,值填你的令牌。

不要把令牌貼上到單元格里。能開啟這張表的人都能讀到單元格內容,而任何拿到令牌的人都能在你的帳戶裡建立、修改和刪除 QR Code。指令碼屬性只有能編輯指令碼的人才看得到。

第 3 步:執行

重新整理表格,會出現一個新的「QR Maker」菜單。選擇「Create codes for new rows」(為新行建立 QR Code)。第一次執行時,Google 會請你授權指令碼編輯表格並呼叫外部服務。

對每一行有編號、有連結但還沒有短連結的資料,指令碼會建立一個動態碼並填好 D 列。E 列會顯示 created(已建立);如果之前已經用這個編號建過碼,顯示 already existed(已存在);如果這一行被拒絕,則顯示錯誤碼:連結不是有效的 http 或 https 地址時是 INVALID_TARGET_URL,目的地被安全檢查拒絕時(比如連結到另一個短網址服務)是以 URL_BLOCKED_ 開頭的錯誤碼。

第 4 步:獲取圖片

D 列的短連結,就是印刷出來的碼必須編碼的內容。至於圖片本身,有兩種方式:

之後修改目的地

修改 B 列再執行一次指令碼,並不會改動已有的碼。這是有意設計的:用已知編號傳送一個不同連結的 POST 請求,會返回衝突,而不是悄悄改掉一個可能已經印刷出去的碼的跳轉。要改目的地,請在工作臺裡改,或者呼叫 PATCH /v1/qrcodes/by-external-id/{external_id} 並傳入新的 target_url。

需要注意的限制

每次執行每個請求最多傳送 100 行,每成功一行計一次呼叫,計入 Business 版每月包含的 50,000 次。失敗的行不計數。Apps Script 本身每次執行約 6 分鐘後會停止,足夠處理幾千行;更多的話,再執行一次,它會從停下的地方繼續。

常見問題

這樣做需要伺服器嗎?

不需要。Apps Script 執行在 Google 的伺服器上,所以令牌永遠不會到達瀏覽器。這也是為什麼儘管 API 不接受網頁發起的呼叫,這個方法依然可行。

只有檢視許可權的同事能看到我的令牌嗎?

不能。指令碼屬性只有能編輯指令碼專案的人才看得到。檢視者和評論者打不開它們。

如果我刪掉一行會怎樣?

碼不會受任何影響。刪除一行只是把它從表格裡去掉。如果這個碼應該停用,請在工作臺裡或通過 API 把它停用或刪除。

免費建立一個動態 QR Code:印出去後也能隨時改連結,每次掃描都有統計。

製作你的 QR Code →