Excel is where a lot of real-world lists live: inventory, event guests, equipment, classroom rosters, product catalogs. Putting a QR code next to each row, or on a printed sheet, lets someone with a phone jump straight to a web page, form or record. Excel doesn't have a built-in QR code generator, but you can still add codes cleanly. This guide covers a single QR code, a QR code inside a cell, one code per row for a list, and how to print them so they actually scan.
The short answer
- Make your QR code in a generator and download it as a PNG (or SVG).
- In Excel, go to Insert → Pictures and choose the file.
- Hold Shift while resizing so the code stays perfectly square.
- Leave a white margin around it and test-scan before you share or print.
The rest of this guide covers the details that make the difference between a code that scans and one that doesn't.
Step 1: Make the QR code image
Decide what the code should open: a website, a Google Form, a PDF, a Wi-Fi network or a contact card. Paste that content into the generator, then download it.
- PNG works everywhere and is the safest choice. Download a large size (at least several hundred pixels across) so Excel never has to stretch it.
- SVG stays sharp at any size. Newer versions of Excel can insert SVG files; if yours can't, use PNG.
Not sure which to pick? See SVG vs PNG for QR codes.
Make a free QR code for a link, WiFi or contact card — generated in your browser.
Open the free QR code generator →Step 2: Insert it into Excel
Floating picture (works in all versions): Insert → Pictures → This Device (or "Picture from File" on Mac), then select your image. The code sits on top of the grid and can be dragged anywhere.
Picture in a cell (newer Microsoft 365): Some versions offer Insert → Pictures → Place in Cell, or a right-click option to place an existing picture in a cell. The image then belongs to the cell: it moves, sorts and filters with the row. That's handy for lists, but the code is limited to the cell's size, so make the row tall and the column wide enough.
To make a floating picture follow its row when you sort or resize, right-click it → Format Picture → Size & Properties → Properties and choose Move and size with cells. For QR codes, "Move but don't size with cells" is often safer, since it keeps the code from being squashed when row heights change.
Step 3: Keep it square and sharp
A QR code must stay square. Stretched codes often fail to scan.
- Resize from a corner handle while holding Shift, or set height and width to the same value in Format Picture → Size.
- Make sure Lock aspect ratio is checked.
- If the code looks blurry, start from a larger PNG rather than enlarging a small one. Shrinking a big image is fine; enlarging a small one isn't.
- On Windows, if pictures look fuzzy in saved files, check File → Options → Advanced → Image Size and Quality and turn on Do not compress images in file, where available.
Step 4: Keep the white margin
Every QR code needs a clear border of white space, called the quiet zone. Excel cells, gridlines and borders can creep into it.
- Don't crop the white border off the image.
- Turn off gridlines for printing (Page Layout → uncheck Print under Gridlines) if they'll pass near the code.
- Avoid placing a code over a colored cell fill or right against a cell border.
More on why this matters: QR code quiet zone.
One QR code per row: working with a list
If you have dozens of items, such as one link per product or one form per room, plan the content in Excel first, then generate the codes.
Build the link for each row with a formula
Say column A has an item ID and you want each code to open https://example.com/item/ followed by that ID. In B2:
="https://example.com/item/"&A2
Fill down. Now column B holds every link. Tips:
- Use
=TRIM(A2)if IDs might have stray spaces. - If IDs contain spaces or special characters, wrap them with
=ENCODEURL(A2)(available in Excel for Windows, but not in every Mac or web version) so the link stays valid. - Click a few of the links (or paste them in a browser) to check they work before making any codes.
Generate and name the images
Generate a code for each link and save each file with the row's ID as its name, such as A1043.png. Matching filenames to IDs makes it easy to insert the right picture in the right row and to check your work later.
Insert and check
Insert each image into its row (Place in Cell is quickest where available). Then spot-check: scan the first, last and a few random rows and confirm each opens the right link. Swapped images are an easy mistake when working with long lists.
A note on online formulas: you may see suggestions to use Excel's IMAGE function with a third-party web address that returns a QR code image. That sends every value in your sheet to an outside service, and the codes break if that service changes or shuts down. For anything private, such as names, emails or internal links, generate images yourself instead.