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…