# How to make QR codes from a spreadsheet

> Upload your spreadsheet to UseQR's free bulk tool — .xlsx files work directly, no CSV export needed — map columns into the payload with merge fields like {{name}}, and download a ZIP of PNGs or SVGs, a grid PDF, or Avery label sheets. Every code is decode-verified before download.

Source: https://useqr.app/docs/how-to/how-to-make-qr-codes-from-a-spreadsheet · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## 1. Shape the sheet

One row per code, headers in the first row. Any columns you like — you will map them in
the next step:

| sku | url | label |
|---|---|---|
| A-1001 | https://example.com/p/a-1001 | Widget, small |
| A-1002 | https://example.com/p/a-1002 | Widget, large |

Keep payload values short: every character adds modules, and a bulk
run multiplies any excess by the whole row count.

## 2. Upload it — .xlsx works directly

Drop the file on the [bulk tool](/bulk). It reads **.xlsx workbooks natively** (first
sheet, first row as headers) as well as CSV — you can skip the export-to-CSV step and the
mangling that comes with it. Everything runs client-side; the spreadsheet never leaves
your browser, which matters if the rows are customer data.

If you do export CSV from Excel first, watch the classic traps:

- **Leading zeros vanish** — serials like `007` become `7` unless the column is formatted
  as text.
- **Dates get rewritten** into the locale format of whoever opened the file last.
- **Encoding**: choose "CSV UTF-8". Plain "CSV" from older Excel versions produces
  Windows-1252, and accented characters arrive corrupted.
- **Formulas** export as their current values — fine, but refresh them first.

## 3. Map columns with merge fields

You choose the code type once for the batch, then build the payload from your columns
using `{{column}}` merge fields — for example `https://example.com/p/{{sku}}` or just
`{{url}}`. Any column can also feed the filename and a printed caption, so
`A-1001.png` comes out identifiable instead of `qr-17.png`.

Need different *types* per row — some WiFi, some URLs? Do that through the
[batch API](/docs/developers/free-qr-code-api-no-key), where each item carries its own
type:

```bash
curl -X POST "https://useqr.app/api/v1/qr/batch" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"data":"https://example.com"},{"type":"wifi","fields":{"ssid":"CafeGuest"}}]}'
```

The API takes up to **1,000 items per call** (100 when rendering PNGs server-side), keyless
and free — see [bulk generation at scale](/docs/developers/bulk-qr-generation-at-scale)
for chunking patterns.

## 4. Pick the output

ZIP of PNGs or SVGs for design workflows, a grid PDF for guillotining, or Avery label
layouts for sticker stock — sizing and cutting details live in
making a sheet of QR code labels and
[Avery labels with QR codes](/docs/how-to/how-to-make-avery-labels-with-qr-codes).

## 5. Verify before you print

The bulk tool decode-verifies every generated code and flags failing rows. Do not skip
reviewing that report: a systematic error — an unescaped character, a truncated column — is
invisible in previews and expensive after 5,000 labels. The full run-and-proof workflow is
in [making QR codes in bulk](/docs/how-to/how-to-make-qr-codes-in-bulk).

## If you want the codes inside the spreadsheet instead

Sometimes you do not want files — you want a QR image sitting in column C next to each
row. That is a different technique (an `IMAGE()` formula calling the UseQR API), covered in
[Google Sheets](/docs/how-to/how-to-make-a-qr-code-in-google-sheets) and
[Excel](/docs/how-to/how-to-make-a-qr-code-in-excel).

Upload your sheet and run the batch: [open the bulk tool](/bulk).

## FAQ

### Can I generate QR codes directly from an Excel file?
Yes. UseQR's bulk tool reads .xlsx workbooks directly in the browser — first sheet, first row as headers — so no CSV export is needed. Map columns into the payload and download the batch.

### How do I turn each row of a spreadsheet into a QR code?
Upload the file to a bulk generator, choose the code type, and reference columns with merge fields such as {{url}} or {{sku}}. Each row becomes one code, named by any column you pick.

### How many QR codes can I make at once?
The bulk tool has no meaningful row limit for a browser session, and the keyless batch API accepts up to 1,000 items per call. Chunk larger jobs across calls — they are free.

### Is it safe to upload a spreadsheet with customer data?
UseQR processes the file client-side — rows are parsed and encoded in your browser and never uploaded. With any other tool, check where the file goes before it contains personal data.

## Try it

- https://useqr.app/bulk
- https://useqr.app/sticker-sheet
- https://useqr.app/validate
