How-to guides
How to make a QR code in Excel
In Microsoft 365 Excel, =IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2)) renders a QR code in the cell; fill down for one per row. Older Excel versions lack IMAGE(), so use a VBA routine or upload the workbook to a bulk generator — UseQR reads .xlsx directly and works offline in the browser.
1. The IMAGE() formula (Microsoft 365)
Excel's IMAGE() function — Microsoft 365 only, rolled out from 2022 — displays an image
from a URL inside a cell. Point it at the
keyless UseQR API and a cell becomes a QR
code. With a link or any text in A2:
=IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2))
Fill down and every row gets its own code. ENCODEURL() (Excel 2013+) is essential —
without it, payloads containing &, # or spaces truncate silently and the code encodes
half your URL.
Optional refinements:
=IMAGE("https://useqr.app/api/v1/qr?size=300&data="&ENCODEURL(A2), "QR for "&A2, 1)
The second argument is alt text; the third is sizing mode (1 = fit cell, keep aspect). Codes need to stay square, so avoid mode 2 (fill).
2. Not on Microsoft 365? Your three options
| Situation | Route |
|---|---|
| Excel 2016/2019/2021, one-off codes | Generate at UseQR, download PNG, Insert → Pictures |
| Older Excel, many codes, scriptable | VBA that calls the API and places images |
| Any Excel, many codes, no code | Save the workbook and upload it to the bulk tool — it reads .xlsx directly |
The bulk route is usually the right answer for volume: it runs client-side in your browser (the workbook is never uploaded to a server), maps columns with merge fields, and returns a ZIP of files or Avery label sheets with every code decode-verified — the full walkthrough is QR codes from a spreadsheet.
3. Know what in-cell codes are for
IMAGE() cells are screen resolution — right for dashboards, pick lists, and quick
sharing; wrong for print. Labels and packaging need files generated at
300 DPI or as SVG, which the bulk
tool produces. Also:
- Each cell fetches its image over HTTP; enormous sheets get throttled and show placeholder icons until retries land.
IMAGE()needs connectivity to display (the underlying QR payload is static and would keep working; the picture in the cell needs the fetch).- You cannot save an
IMAGE()cell as a file — it is display only.
4. Typed payloads from columns
The API's typed endpoints compose from multiple columns — WiFi from SSID and password columns, UPI from a VPA column:
=IMAGE("https://useqr.app/api/v1/wifi?ssid="&ENCODEURL(A2)&"&password="&ENCODEURL(B2))
Pause before doing this with secrets: formula URLs send cell values to the API to render. For WiFi passwords and personal data, prefer the client-side generator or bulk tool, where data never leaves the browser.
5. Verify a sample
Scan two or three rendered cells straight off the monitor with a phone, or run one code's URL through the validator. For printed output, verify the exported files at final size — the bulk tool has already decode-verified them, but scan one physical print anyway.
Gotchas
#CALC!or a broken-image icon: usually a typo'd URL or a blocked connection — corporate proxies sometimes block image fetches from formulas.- Leading zeros: format serial columns as Text before building codes, or
00123becomes123inside the payload. - Workbook recalculation re-fetches images; on metered or offline machines cells go blank. The bulk-file route has no such dependency.
Start with one formula cell, or take the whole workbook to the bulk tool.
FAQ
What is the Excel formula for a QR code?
In Microsoft 365: =IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2)). Fill it down for one code per row. Earlier Excel versions lack IMAGE() and need VBA or an external bulk tool.
Can I make QR codes in Excel without Microsoft 365?
Yes — either a VBA macro that fetches codes from a QR API, or save the .xlsx and upload it to a bulk generator. UseQR's bulk tool reads Excel files directly in the browser, free.
Are Excel IMAGE() QR codes good enough to print?
No — they render at screen resolution. For labels or packaging, generate real files at 300 DPI or SVG from the same spreadsheet using a bulk tool, then print those.
Why does my Excel QR code encode only part of the URL?
The payload was concatenated without ENCODEURL(), so characters like & were read as API parameters. Wrap every cell reference in ENCODEURL() inside the formula.
Try it — free, no signup
Related
- How to make a QR code in Google Sheets — One formula — =IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2)) — puts a live QR code in a cell. Fill it down and every row gets its own code.
- How to make QR codes from a spreadsheet — Upload the spreadsheet to the bulk tool — .xlsx works directly, no CSV export needed — map columns with merge fields, and download a ZIP of verified codes.
- Generate a QR code in Excel VBA — VBA QR patterns: Shapes.AddPicture straight from the keyless API URL, a loop over a range of cells, URLDownloadToFile for saved images.
- How to make Avery labels with QR codes — Pick the Avery preset — 5160, 5163 or L7160 — in the sticker sheet or bulk tool and print the PDF at 100%. Exact label sizes, capacities and traps included.
- A free QR code API with no key — UseQR's REST API needs no signup, no API key and no SDK. GET /api/v1/qr?data=hello returns a PNG. The shortest form is /q/hello.png, which drops straight…