Excel has no built-in QR code generator. The one native QR option in Office is a field code in Word for Windows, DisplayBarcode, and it doesn't work inside a worksheet. What a spreadsheet usually needs isn't a single code but a whole column's worth: product IDs, asset numbers or event pages that each need their own. One row's worth of data fits any ordinary generator, exported as an image and pasted into the sheet by hand.
A full column is a different job, better handled by a bulk generator that reads a list and hands back one code per line, rather than repeating the same steps down every row.
Turning a spreadsheet column into QR codes
Decide what each row should encode
A URL column works as-is; a column of plain IDs or asset numbers needs a consistent link pattern, like a base URL with the ID appended, if the codes should open something on scan.
Export the column as CSV
Excel's Save As or Export menu writes a plain CSV from a single sheet or a selected range — the format most bulk QR tools expect.
Run it through a bulk generator
Paste or upload the CSV; each row becomes one static QR code, decoded and checked before it's packaged, with no limit on how many batches you run.
Download the ZIP and match files to rows
The resulting images are typically named from the row's data, so they can be matched back to the spreadsheet for labels, tags or a mail merge.
Why Excel doesn't do this natively
Excel has no function or ribbon button that draws a QR code, and a barcode font can't produce one either, since a QR code is a two-dimensional grid rather than a row of bars. Office's one native QR tool is Word's DisplayBarcode field, which works inside a Word document, not a worksheet. For a spreadsheet, the realistic paths are a generator for single codes or a bulk tool that reads the column and returns one image per row.
One code versus hundreds
A spreadsheet with a handful of rows can be handled one at a time in any generator, copying a link from each cell. Past a few dozen rows that stops being practical, and a bulk tool that accepts the whole exported list at once — up to 1,000 rows per batch, with no cap on how many batches — is the difference between minutes and an afternoon.
Matching codes back to the right row
A batch job is only useful if the output can be tied back to the spreadsheet it came from. Naming each generated file after the row's identifier, rather than a generic sequence number, keeps a folder of a thousand images sortable against the original list when it's time to print labels or tags.
What goes into each code
A row that already contains a full link encodes exactly that. A row with only an ID needs a link pattern applied first — most spreadsheet-driven QR jobs work best when a formula builds the full URL in a helper column before export, rather than encoding the bare ID.
https://example.com/asset/48213Sizing for asset tags and labels
A code destined for a small inventory label needs the same minimum as any printed code — about 20 mm on a side for a close-range scan — and should keep clear space around it even on a cramped label template.
Print it at least 20 mm (2.0 cm) wide
Where spreadsheet batches go wrong
Encoding a bare ID instead of a working link
A code that just contains "48213" opens nothing on scan; it needs to be part of a full URL that a scanner's browser can actually load.
Running one column at a time by hand
Copying each link into a generator individually doesn't scale past a few rows — a bulk tool built for CSV input removes the repetition entirely.
Losing track of which image belongs to which row
Generic filenames like code1.png make a batch impossible to sort later; naming files from the row data avoids the mismatch.
Bulk batches are static codes by design
A generated batch is static — each destination is fixed at export time, which fits inventory tags and asset labels that shouldn't change identity later. A row that genuinely needs an editable destination is better made as an individual dynamic code outside the batch process.
How dynamic QR codes workSpreadsheet jobs this fits
- An inventory sheet where every SKU needs a code linking to its product page.
- A list of event attendees where each row becomes a personal check-in link.
- Asset tags for equipment, generated from a column of serial numbers.
- A mailing list turned into individual vCard codes for a printed directory.