How to Make QR Codes in Google Sheets™ (Formula and Bulk Methods, 2026)
You have a column of URLs, ticket numbers or SKUs, and you want a QR code next to each one. Google Sheets™ has no built-in QR function, but there are three ways to get there. We tested each of them in November 2026, and one of the most-copied tutorials on the web no longer works.
Short answer: for a handful of codes, use =IMAGE("https://quickchart.io/qr?text="&ENCODEURL(A2)&"&size=200"). For hundreds of codes, styled codes or codes that must keep working when printed and shared, use a bulk generator add-on.
Method 1: the IMAGE formula (quick, a few codes)
The IMAGE function shows any image URL inside a cell. Point it at a free QR image service and pass your cell value in the URL.
Put your values in column A, starting at A2.
In B2, enter:
=IMAGE("https://quickchart.io/qr?text="&ENCODEURL(A2)&"&size=200")Drag the formula down the column.
Make the rows taller (right-click the row numbers ▸ Resize rows ▸ 120) so the codes are big enough to scan.
ENCODEURL matters. Without it, a value like https://shop.example.com/?id=42&ref=label gets cut off at the & and the QR code points to the wrong page.
Another free service that works the same way:
=IMAGE("https://api.qrserver.com/v1/create-qr-code/?size=200x200&data="&ENCODEURL(A2))
The old Google Charts formula is dead
Many older guides tell you to use:
=IMAGE("https://chart.googleapis.com/chart?cht=qr&chs=200x200&chl="&A2)
When we tested it on 3 November 2026, that URL returned HTTP 404. The Google Image Charts API was deprecated years ago and the QR endpoint no longer serves images, so every sheet built on it shows blank cells. If you inherited a sheet with empty QR columns, this is almost certainly why. Swap the URL for one of the formulas above.
Limits of the formula method
- The image is only a link. The QR code is fetched again whenever the sheet recalculates. If the service is slow or goes away (like Google Charts did), your codes disappear.
- Your values are sent to a third-party server in the URL on every recalculation. Don't use it for anything confidential.
- No styling. You get plain black squares. No colours, rounded dots or logo in the middle.
- Hard to print. Images that live inside formulas don't always export cleanly to PDF at the size you want.
Method 2: Apps Script (if you like code)
You can write a short Apps Script that loops over your rows and inserts an image into each cell with SpreadsheetApp.newCellImage().setSourceUrl(url). The upside is that the result is a real in-cell image, not a live formula, so it stays put after it's created. The downside is that you maintain the script, handle errors yourself and run into Apps Script quotas when you go past a few hundred rows.
Method 3: a bulk QR code add-on (hundreds of codes, styled, printable)
This is the route we built BarQR for, because we kept hitting the limits above when making inventory and event sheets.
- Install BarQR: Bulk QR Code Barcode Generator for Sheets™ from the Google Workspace™ Marketplace.
- Open your spreadsheet and go to Extensions ▸ BarQR: Bulk QR Code Barcode Generator for Sheets™ ▸ Open BarQR.
- Pick the source column (your links or IDs) and an output column for the codes.
- Choose QR Code, a size (600 px or more for print) and colours. The preview shows exactly what you'll get.
- Generate for all rows, only the rows you selected, or values you pick from a list.
The codes are inserted as images in the cells, so they don't depend on a formula staying alive. You can print the sheet or export it to PDF as a page of labels. The free plan covers your first 50 codes. Pro adds unlimited codes and QR design options: dot shapes, corner styles and a logo in the centre.
Which method should you use?
| You need | Use |
|---|---|
| 1–20 plain codes, nothing sensitive | IMAGE formula with quickchart.io or qrserver |
| Codes generated by your own automation | Apps Script with newCellImage |
| 50+ codes, styled codes, or labels to print | A bulk add-on such as BarQR |
Tips that save a reprint
- Test-scan one code before printing a batch. Any phone camera works.
- Keep QR content short. A 20-character URL makes a cleaner, more scannable code than a 200-character one. Use a short link if your URLs are long.
- Size for distance. A rough rule: the code should be at least one tenth of the scanning distance wide. A label read from 30 cm needs a code about 3 cm wide.
- Keep contrast high. Dark code on a light background. Light-on-dark codes fail on many scanners.
FAQ
Does Google Sheets™ have a QR code function?
No. You need the IMAGE function with an external QR service, a script, or an add-on.
Why are my QR code cells blank?
If the formula uses chart.googleapis.com, that service no longer returns images. Replace it with the quickchart.io formula above.
Can I make a QR code with a logo in Google Sheets™? Not with a formula. You need an add-on that supports logo QR codes, such as BarQR Pro.
Can I make a QR code for a Google Form™? Yes. Copy the form's share link into a cell and use any method above on that cell.