MakeQR

QR Code Generator for Google Sheets

Turning spreadsheet rows into codes reliably

  • Free, and no account to create
  • Never expires, unlimited scans
  • Checked to scan before you print it

Free and permanent, but it can never be edited or tracked once printed.

Scan to test

Y
yoursite.com
Print as poster, table card or stickers · free for 14 days with an account

Free, no account. Works forever and never expires.

Google Sheets has no native QR code function. A formula using an external chart-image API can render a code inside a cell, but it depends on that third-party service staying online. Exporting the sheet as CSV and running it through a bulk generator produces the same result more reliably, with one static code per row.

Google Sheets lacks a native QR feature, and no menu item generates one, which usually isn't the real obstacle since most people need a code for every row of a list rather than one made by hand. Some spreadsheets work around this with a formula that pulls a QR image from a third-party chart API into a cell, which works only as long as that outside service stays online.

A more durable approach treats the sheet as a data source: export the relevant column as CSV and run it through a generator built to read a list and hand back one code per row, rather than relying on a live formula that could break without warning.

Getting a code for every row in a Sheet

  1. Build a column of full links

    If the sheet only has IDs or names, add a formula column that concatenates a base URL with each row's value, so every entry is a working link before export.

  2. Export as CSV

    File > Download > Comma-separated values (.csv) exports the current sheet in the plain format a bulk generator expects.

  3. Run the file through a bulk QR generator

    Upload the CSV; each row becomes its own static code, checked by decoding it before it's added to the output, up to 1,000 rows per batch.

  4. Match the downloaded files back to the sheet

    Codes are typically named from the row's own data, which keeps a folder of results sortable against the original spreadsheet for printing or mail merge.

The IMAGE-formula workaround, and its real limits

A formula that builds a URL to a chart-rendering API and wraps it in Sheets' IMAGE function can display something that looks like a QR code directly in a cell. It has no control over error correction, no logo support, and stops working the moment the external service it depends on changes its API or shuts down — which has happened before to formulas built the same way for chart images.

Why an exported CSV is the more durable path

Treating the spreadsheet as a data source rather than a rendering surface separates the two jobs: Sheets manages the list, and a dedicated generator makes the codes, decodes each one to confirm it scans, and packages the result — none of which depends on an external service staying online indefinitely.

What each row's code contains

A completed link in a row is encoded exactly as written. A row with only a name or ID needs a formula column to build the full URL first, since a bare identifier isn't something a scanner's browser can open.

Inside the code
https://example.com/rsvp/482

Printing codes generated from a sheet

A code destined for a badge, ticket or shelf label needs at least 20 mm on a side for a close scan, following the same rule as any printed code: scanning distance runs about ten times the code's width.

Print it at least 20 mm (2.0 cm) wide

Where spreadsheet-driven codes fail

  • Relying on a chart-API formula for production use

    It's fine for a quick preview, but a workflow that prints hundreds of labels shouldn't depend on an outside service's image endpoint staying unchanged.

  • Encoding an ID instead of a completed URL

    A bare row value like "482" opens nothing on scan without being part of a full link built ahead of export.

  • Not checking for duplicate or blank rows before export

    A blank cell exported into the batch produces a code with no meaningful destination — worth filtering the sheet before running the batch.

Batch-generated codes are static by design

Codes generated from a spreadsheet row are static, which fits records that shouldn't change identity later, like a numbered ticket or asset tag. A row that genuinely needs a repointable destination should be made as an individual dynamic code outside the batch.

How dynamic QR codes work

Sheets-driven jobs this suits

  • An RSVP list turned into a personal check-in code per guest.
  • A shared inventory sheet where each SKU gets a code to its listing.
  • A volunteer sign-up sheet exported into badge codes for an event.
  • A property list turned into a code per listing for printed flyers.

A QR code that still works next year

Most of what goes wrong with a QR code happens after it is printed. These six things are why ours does not.

  • Checked before you print

    We decode every code you make and read it back. If a logo covers too much or a colour is too faint for paper, you find out here — not after the print run.

  • Unlimited scans, every plan

    Including the free one. A scan cap kills a printed code at the moment it starts working, which is why we do not have one.

  • We do not switch off your codes

    Two dynamic codes stay yours permanently, whatever you pay us. Cancel a paid plan and you keep them — the rest pause after 30 days, with three warnings first, and a paused code shows a neutral page, never a sales page.

  • Made on your device

    Static codes never reach our servers. Your WiFi password, your contact details and your logo stay in the browser — which is also why there is no limit.

  • Ready for the printer

    SVG for anything that gets scaled, and PNG at 1024px so the edges stay hard. Both free, no account.

  • Available in English, Norwegian Bokmål, Danish, Swedish, German, French, Dutch, Italian, Spanish, Finnish, Portuguese, and Polish

    The generator and every page speak English, Norwegian Bokmål, Danish, Swedish, German, French, Dutch, Italian, Spanish, Finnish, Portuguese, and Polish. More languages follow as each one is reviewed by a native speaker.

See what happens after you print

A dynamic code points at a short link you own. Change where it goes without reprinting anything, and see how often each code has been scanned and when the last scan was.

  • Change the destination any time, as often as you like
  • A scan count and the last scan for every code
  • No scan limit, on any plan
  • Cancel and you keep two codes permanently — the rest pause after 30 days
Start free

2 codes free. Paid from $7/month. Compare plans

MakeQRCNCafe Nord

Analytics

Aug 14 – Sep 12

7D30D90D1Y

Total scans

11,875

18%

Unique scanners

8,431

14%

Active codes

24

3

Scans per day

396

18%

Scans over time

0
200
400
600
800
Aug 14Aug 21Aug 28Sep 4Sep 11

Devices

62%

of scans came from an iPhone

  • iPhone62%
  • Android34%
  • Other4%

QR Code Generator for Google Sheets: questions and answers

Short answers to what people ask before they print. Anything else, write to us.

Ask us something else

Can Google Sheets generate QR codes on its own?

Not natively. A common workaround uses the IMAGE function with a link to a third-party chart API, but that depends on the external service staying available.

How do I make a QR code for every row in a spreadsheet?

Export the sheet as CSV and run it through a bulk QR generator, which turns each row into its own static code — up to 1,000 rows per batch.

Is the chart-API formula reliable for a large print run?

It's better suited to a quick look than production use, since it depends on an outside service's image endpoint rather than a generator built for the job.

What if my column only has names or ID numbers?

Add a formula column that builds a complete link from each value before exporting, so every code encodes something a scanner can actually open.

Does exporting to CSV lose any formatting?

CSV keeps only plain values, not cell formatting or formulas — which is fine here, since the generator only needs the finished text in each cell.

Make a code that still works next year

Free static codes with no account, two permanent dynamic codes, unlimited scans on every plan, and a check that tells you it scans before you print it.

Make a QR code

No account for static codes. Nothing to cancel.