Published on 8/7/2026
QR Codes in Excel and Google Sheets: What Belongs in the Cell
Two different jobs get called "QR codes in a spreadsheet", and mixing them up is where the trouble starts.
One: the sheet is where your list lives — 300 rooms, 80 machines, 40 properties — and you need a code for each. Two: you want the code image visible inside the sheet itself.
The first is a real job and has a clean answer. The second is almost always a mistake, and it is the one every guide teaches.
Why the formula trick ages badly
The standard recipe is a formula that fetches a code picture from a public URL and displays it in the cell. It works on the first afternoon. What it builds is less pleasant:
- A dependency on someone else's server. Your spreadsheet now stops working when a free service you do not pay for goes down, changes its address, or starts charging. Several have.
- Pictures of decisions you can no longer change. The image encodes whatever the cell said at that moment. Change the destination and every printed copy still points at the old one — the picture cannot be updated after it leaves the sheet.
- Images that are not really there. An image produced by a formula is a live fetch, not a file. Export the sheet, mail it, or open it offline and the codes can simply be missing.
- Print quality nobody checked. A cell-sized picture is a few hundred pixels. Printed at 2 cm it is often fine and sometimes not, and you find out after the run.
None of this matters if the sheet is a scratchpad. All of it matters the moment something gets printed.
What the cell should hold instead
The short link, as text. Not the picture — the address the code encodes.
Text in a cell can be sorted, filtered, searched, pasted into a mail merge, compared against last month's, and read by whoever inherits the file. A picture can be looked at. And because a dynamic short link stays the same while its destination changes, the column stays correct without anyone touching it.
Then the image is generated once, at the size and format the print job needs, by whatever is producing the artwork — the label template, the sign, the worksheet. That is where a code belongs: on the thing that will be printed, not in the planning document.
The real job: a list of rows to a set of codes
If the sheet is the list, the path is short:
- Two columns: a name, then the destination. The name is what you will read in the code list later, so name by placement —
Room 101,Press machine 4— not by what it points at. - Save as CSV. Both Excel and Google Sheets export it directly; a header row is fine.
- Upload it. Up to 1,000 rows at a time, and each row becomes a normal dynamic code.
- Paste the short links back into the sheet as a third column, and your spreadsheet is now the register of what exists — which is the thing a spreadsheet is genuinely good at.
Bulk upload is part of the paid plans; the free plan's five codes are a form, not a spreadsheet.
Formulas that are actually worth having
Instead of images, the useful spreadsheet work is building the destinations:
- Compose URLs from your data.
="https://example.com/rooms/"&A2turns a room number column into 300 correct addresses without typing any of them, and without the transposition errors that come from typing 300 of anything. - Add campaign parameters the same way, so every row carries consistent tracking rather than whatever each person remembered to append.
- Check for duplicates before uploading. Two rows pointing at the same place usually means a copied row, and it is much cheaper to find here than on 500 printed labels.
This is the part spreadsheets are excellent at, and it is the part the image-formula guides skip entirely.
If you genuinely need the picture in the file
Sometimes the sheet is the deliverable — a printable inventory list, a seating plan. In that case: generate the codes, download the PNGs, and insert them as real images rather than formula results. Slower, and it produces a file that still works when emailed, exported to PDF, or opened in five years.
Then scan one from a printed copy before printing the rest. Cell-sized images are exactly the size where "looks fine on screen" and "reads on paper" stop agreeing.
Quick answers
- How do I put a QR code in Google Sheets? You can pull an image with a formula, but it ties your file to an outside service and freezes the destination into a picture. Keep the short link as text instead.
- How do I make codes for every row? Export the sheet as CSV — name, then destination — and upload it; each row becomes a dynamic code.
- How many rows at once? Up to 1,000, within your plan's code limit.
- Can I build the URLs with a formula? Yes, and you should — it is the safest way to produce hundreds of correct addresses.
- Is bulk upload free? No, it is on the paid plans.
- What if the sheet itself gets printed? Insert downloaded PNGs as real images, and test one on paper first.