
Excel 轉 QR 的工作流程如何運作
若要從 Excel 批次產生多個 QR code,請從試算表中每列複製一段文字或網址,然後把這些行貼到「批次 QR Code 產生器」中,該工具能在單次瀏覽器操作中一次產出最多 20 個獨立的 PNG 檔案。Excel 本身並不會產生可掃描的 QR 符號——它只會在儲存格中儲存文字、網址或連結,而需要編碼的是這些儲存的內容,而非工作表本身。因此,「從 Excel 批次產生多個 QR code」的任務是一個兩階段的工作流程:先在一整欄儲存格中整理乾淨的資料行,再把這些行交給 QR 編碼器,由它回傳 PNG 影像。這個批次工具正好符合此流程,因為試算表只扮演乾淨輸入來源的角色,編碼本身從不依賴 Excel 公式、巨集或外掛權限。
瀏覽器端的「批次 QR Code 產生器」接受貼上的、以換行分隔的輸入,使用專案既有的 qrcode 1.5.4 函式庫對每一行進行編碼,並為它產生的每張 PNG 提供個別預覽的下載連結。由於編碼器是在目前的分頁中執行,因此不會上傳、縮網址或追蹤任何資料;而且處理批次中每個符號的程式碼路徑,與單張 QR Code 產生器所使用的完全相同。這個共用的編碼器是讓兩個工具不致於分歧最簡單的方法,這也意味著其限制——每行最多 20 筆不重複內容、每行最多 2,000 字元——會以確定的方式決定批次結果,而非依試算表大小、活頁簿版本或作業系統而變動。
瀏覽器端批次 vs Excel 外掛
大多數「在 Excel 中產生 QR code」的教學,最後都會安裝外掛、啟用「開發人員」索引標籤,或貼上會呼叫外部網路服務的公式。這些方法雖然能用,但每一種都會帶來一個摩擦點:外掛在每台開啟活頁簿的電腦上都需要授權;檔案在 Excel 版本之間移動時,公式可能會默默地失效;而外部服務則會把儲存格內容上傳到你無法掌控的伺服器。瀏覽器端的批次方式同時消除了這三個問題,因為它只是一個普通的網頁——你在 Chrome、Edge、Firefox 或 Safari 中開啟它、把資料貼進去,存好檔案後再關閉即可。
「批次 QR Code 產生器」是建構在與單張 QR Code 產生器相同的 qrcode 1.5.4 套件之上,因此你在批次中產生的符號,與使用單頁工具、給定相同的寬度、邊距與容錯等級所得到的符號會完全一致。批次頁面刻意避免加入第二套 QR 實作,或是把容量表複製到產品程式碼中。當 QR code 最後被印在標籤上,或張貼在活動現場時,這個選擇就很重要:只需要信任一個編碼器,只需要查閱同一套限制。
為批次作業準備你的 Excel 工作表
- 開啟儲存你想編碼內容的活頁簿,並找出每個 QR code 對應文字或網址的那一欄。
- 移除輔助用的列,例如標題、空白的分隔列,或不該被變成可掃描符號的「Test」測試行——批次作業會去除完全重複的內容,但無法判斷網址尾端的多餘空白是否為刻意保留。
- 以純文字而非公式形式複製該欄位。在 Excel 中選取儲存格後按下 Ctrl+C,然後開啟像記事本或瀏覽器網址列這類純文字目標再貼上。這樣可以去除格式、超連結物件與任何嵌入的圖片,讓批次輸入只收到儲存格的內容值。
- 確認每一行剩下的內容都在 2,000 個 JavaScript 字元以內。多行儲存格、格式化的附註或貼上的 RTF 文字經常會超過此限制;批次工具會針對違規的每一行回報錯誤,而不是產出殘缺的一批結果。
- 確認不重複的行數不超過 20。輸入解析器會去掉前後空白、移除空行,並對去空白後完全相同的重複項進行去重,同時保留第一次出現的順序,因此最終的批次大小,就是剩下來的不重複內容數量。
如果你的欄位儲存的是 Excel 超連結物件而非可見的儲存格文字——例如某個儲存格顯示「Click here」,實際卻儲存了一長串行銷活動網址——你就必須先把背後的網址抽出來,批次工具才能加以編碼。Extract a Link From a Hyperlink in Excel via HTML Source 這份指南會逐步說明該 HTML 做法,並產出可直接貼入產生器的純文字清單。
從你的 Excel 資料批次產生多個 QR code
- 在瀏覽器中開啟 批次 QR Code 產生器,並把準備好的內容貼到輸入區,每行一筆。
- 選擇 PNG 畫布大小——128、256 或 512 像素——以及容錯等級 (L、M、Q 或 H)。在一般乾淨的顯示環境下,請保留預設的 M,除非你預期會有損壞、反光,或要在中央加上 logo 圖案。
- 點選「Generate QR codes」(產生 QR code)。頁面會去除空白、移除空行、對完全重複的內容進行去重、將批次上限設為 20 筆不重複行,並透過非同步的工作識別碼同時執行編碼,確保舊的結果不會覆蓋較新的設定。
- 檢視每一張預覽圖。若某筆內容超出 QR 容量,批次工具會針對該行顯示錯誤,而不是把不完整的結果當成成功來呈現。
- 用你在實際使用環境中打算使用的手機或掃描 App 逐一掃描每張預覽,然後從每張預覽下方的連結個別下載已驗證的 PNG。
PNG 大小與容錯等級說明
像素大小與容錯等級是各自獨立的選擇;把兩者搞混,是批次在螢幕上看起來正常、印出來卻失敗最常見的原因。較大的畫布會產生較大的 PNG 檔,印出來時每英吋容納的模組數較多,但它並不會增加符號的資料容量——同一段文字「https://example.com」的 512 像素圖片,與 128 像素圖片編碼的是相同的內容、相同的 QR 版本,差別只在於以較高的解析度呈現。
| 容錯等級 | 大約還原率 | 適用情境 |
|---|---|---|
| L | ~7% | 不易受損的乾淨室內顯示環境,且容量較為重要 |
| M | ~15% | 一般的乾淨顯示環境;多數情況下的實用預設 |
| Q | ~25% | 戶外或部分遮蔽的表面,需要中等程度的還原能力 |
| H | ~30% | 工業標籤、帶中央 logo 的品牌化 QR code,或容易磨損的表面 |
這些還原率是 DENSO WAVE 為四個標準等級所公布的數字。等級越高並不一定越好:它會提高符號的模組密度,可能把勉強能容納的內容擠進較大的 QR 版本,使得部分較舊的掃描器讀取不一致。猶豫不決時,請維持 M 並在影像周圍保留靜默區,而不是直接跳到 H。
下載、命名與驗證每一張 PNG
每張預覽圖都帶有自己的下載連結與一個具確定性的檔名。頁面會從內容衍生出一段簡短的 ASCII 字幹,前面加上兩位數的批次編號,後面再接上 PNG 副檔名,因此位於第一列的 https://example.com 會下載為 01-example-com.png。如果某行內容不包含任何 ASCII 字母或數字,備用的字幹會是 qr-code。檔名只是一個方便辨識的標記,絕不會更動編碼內容——掃描器讀出的仍然會是原本那一行的內容。
頁面並不會把整個批次打包成 ZIP 檔,因為本專案刻意不為此工具新增任何壓縮相關的依賴。請改為從每張預覽圖自己的連結個別下載所需的 PNG。瀏覽器可能要求每個檔案各點一次,或跳出下載權限的提示;產生器絕不會一次觸發 20 次自動下載,藉此避免突兀的行為,並讓選定的輸出更為明確。PNG 下載後,請保留其靜默區(圍繞定位圖案的空白邊距)、維持對比度,並且不要拉伸、改色、裁剪,或遮蓋任何一個角落的定位圖案。
列印前的限制、隱私與最後檢查
三項硬性限制決定了每一批的結果:每批最多 20 筆不重複內容、每行最多 2,000 個 JavaScript 字元,以及所選版本與容錯等級下的標準 QR 資料容量。這三者共同限制了普通筆電與手機上的 CPU、記憶體、版面配置工作量,以及意外大量下載的次數。如果你的內容超過 20 筆,請分成兩批處理,而不是去尋找繞過限制的方法,因為調高上限代表需要新的程式碼路徑與另一個需要信任的編碼器。
隱私方面很單純:所有內容與 PNG 資料 URL 全部留在目前這個分頁中。不會上傳、縮網址、追蹤或記錄任何資訊。更動輸入或選項會使前一組批次失效;而非同步的工作識別碼則能避免較舊的產生結果覆蓋到較新的設定。node-qrcode 瀏覽器 API 指南是負責執行編碼之函式庫的公開參考資料。
最後一步是驗證:產生出一張 PNG 並不代表每台掃描器都讀得到你預期的內容。UTF-8 長文字、表情符號、印刷尺寸、對比、相機對焦、顯示器反光、物理性損壞與讀取器行為,全都會影響成功率。某些 QR 讀取器對網址、聯絡人文字或其他內容的解讀方式可能不同;底層函式庫也註明尚未完整支援 ECI。請用你目標的裝置與 App 掃描每一張最終的 PNG,並逐字元比對解碼出來的內容。請勿把未經檢查的 QR code 用於付款、身份驗證金鑰、安全指示,或任何不可逆的操作。
若你在權衡各種選項,Batch QR Code Generator: Pick Size and Error Level 對此有詳細說明。