Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

How-to guides

How to make a QR code in Google Sheets

Put =IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2)) in a cell and a QR code for A2's contents appears. Fill the formula down and every row gets its own code, no add-on, no signup. ENCODEURL keeps special characters safe; use IMAGE mode 4 for exact pixel sizing.

View as MarkdownPaste this page into any AI assistant. It is plain, portable Markdown.

1. The formula

With a URL (or any text) in A2, put this in B2:

=IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2))

A QR code for A2's contents renders in the cell. That is the whole trick: the keyless API returns a PNG for whatever data= carries, and Sheets' IMAGE() displays any image URL. No add-on, no signup, no script.

ENCODEURL is not optional. Without it, a payload containing &, #, + or spaces silently truncates, https://example.com/page?a=1&b=2 becomes a code for https://example.com/page?a=1. Encoding the cell value keeps every character intact.

2. Fill down for a whole column

Drag the fill handle (or copy B2 down) and every row gets its own code, a hundred product URLs become a hundred QR codes in seconds. Make the rows taller and the column wider to see them; by default IMAGE() fits the cell.

For exact sizing, use mode 4 with pixel dimensions, and ask the API for matching resolution:

=IMAGE("https://useqr.app/api/v1/qr?size=300&data="&ENCODEURL(A2), 4, 150, 150)

3. Know the limits of in-cell codes

Honest caveats before you build a workflow on this:

  • Each cell is one HTTP fetch. A thousand-row sheet makes a thousand image requests; Sheets throttles and shows some cells as broken images until it retries. Hundreds of rows: fine. Many thousands: use the bulk tool instead.
  • Screen resolution only. In-cell images are for viewing and quick sharing. For printing (labels, posters, anything physical) export real files at print resolution via the bulk workflow, which also decode-verifies every code.
  • You cannot right-click-save an IMAGE() cell as a file. The formula is display, not export.
  • The sheet re-fetches images on some reopens: a static code's payload never changes, but you need connectivity for the images to display.

4. Typed codes, not just URLs

The API has typed endpoints, so a sheet can build WiFi codes from an SSID column or UPI codes from a VPA column:

=IMAGE("https://useqr.app/api/v1/wifi?ssid="&ENCODEURL(A2)&"&password="&ENCODEURL(B2))

One thing to weigh first: cell values in a formula URL are sent to the API to render. UseQR logs nothing, but a spreadsheet of WiFi passwords leaving the sheet at all deserves a moment's thought, for sensitive payloads, generate client-side in the generator or bulk tool, where data never leaves the browser.

5. Verify a sample

Scan a few rendered cells straight off the monitor (that works fine), or paste one code's URL into the validator. For anything headed to print, verify the exported files, not the cells.

Gotchas

  • Apostrophe-prefixed cells ('0012) encode with the apostrophe stripped by Sheets before the formula sees it, usually what you want, but check serials.
  • #ERROR! in the cell usually means unbalanced quotes in the formula; the URL must be one quoted string concatenated with &.
  • Automation: for scripted generation, exports or scheduled refreshes, use Apps Script rather than formula gymnastics.

Try it with one cell now, or run the whole sheet through the bulk tool when you need files.

FAQ

What is the Google Sheets formula for a QR code?

=IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2)), replace A2 with the cell containing your link or text. Fill down to generate a code per row. It is free and keyless.

Why does my Sheets QR code cut off part of the URL?

The payload was not URL-encoded, so characters like & split the API request. Wrap the cell reference in ENCODEURL() and the full value encodes correctly.

Can I print QR codes straight from Google Sheets?

Printing the sheet prints screen-resolution images: acceptable for a quick internal list, wrong for labels or marketing. Export proper files through a bulk generator at 300 DPI instead.

How many QR codes can a sheet hold?

Each IMAGE() cell is a separate fetch, and Sheets throttles large batches, hundreds work smoothly, thousands get flaky. Past that, generate files in bulk rather than in cells.

Try it: free, no signup

  • How to make a QR code in Excel, In Microsoft 365, =IMAGE("https://useqr.app/api/v1/qr?data="&ENCODEURL(A2)) renders a QR code in a cell. Older Excel needs VBA or an offline bulk tool.
  • 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.
  • How to make a QR code in Google Docs, Insert → Image → By URL with a UseQR API link puts a QR code in a Google Doc in one step, no download, no upload. Docs stores its own copy of the image.
  • 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…
  • Generate a QR code in Google Apps Script, Apps Script QR patterns: UrlFetchApp against the keyless API, saving to Drive, filling a Sheets column with codes, and trigger-driven regeneration.