Bulk QR code generator from CSV

Upload a spreadsheet with a type column (url, wifi, line, whatsapp, vcard), customize the design once, and export up to fifty PNG QR codes in one ZIP. Legacy url-only CSV still works. For a single code, use the free QR generator.

Bulk QR generator

Create many QR codes at once

Upload a CSV with URL, WiFi, LINE, WhatsApp, or vCard rows. Apply one shared design and download a ZIP of PNG files — up to 50 codes per batch, all in your browser.

Read the full bulk QR guide ↓

1. Upload CSV

Choose a QR type, download the matching sample CSV, fill your rows, then upload. You can merge several type-specific files into one batch. Maximum 50 rows per export.

Pick a type first — the sample file includes only the columns you need for that QR type.

2. Customize design

QR designer

Customize the preview without changing your QR content.

Use a small square image. Higher error correction is recommended with logos.

Preset logos

Preset backgrounds

Gradient

Frame

3. Preview & download ZIP

Live design preview

Sample URL — upload a CSV to preview your first ready row.

0 of 0 rows are ready to export.

PNG files include your selected frame, label, and background. Codes are rendered one at a time to stay light on memory.

Bulk QR code guide — CSV to ZIP

What this tool does

The bulk generator turns a CSV list into many matching QR codes in one run. Supported types in Phase B1: URL, WiFi, LINE, WhatsApp, and vCard. You apply one visual design to every code and download a ZIP of PNG files.

Everything happens in your browser. We do not store your CSV or exported images on a server. No account is required.

Each batch supports up to 50 codes so export stays fast on everyday laptops and phones — including devices with about 4 GB of RAM.

CSV file format

Use the type dropdown above the upload button, then download the matching sample (for example bulk-qr-sample-wifi.csv). Each sample includes only the columns you need. Legacy CSV files with only url, filename, and label still work for URL batches.

type
Required for mixed batches. One of: url, wifi, line, whatsapp, vcard.
filename
Optional but recommended. PNG file name inside the ZIP, without the .png extension.
label
Optional. Frame text when your design uses a label frame.
url
For type url. Full https:// or http:// address.
wifiSsid / wifiPassword / wifiEncryption
For type wifi. Encryption is WPA, WEP, or nopass.
lineId
For type line. LINE ID, @official account, or https://line.me URL.
whatsappPhone / whatsappMessage
For type whatsapp. Phone in international format; message is optional.
vcardFirstName / vcardLastName / …
For type vcard. At least first or last name required; phone, email, and website optional.

Example CSV: 10 table menu QR codes

type,filename,label,url
url,table-01,Table 1,https://example.com/menu?table=1
url,table-02,Table 2,https://example.com/menu?table=2
url,table-03,Table 3,https://example.com/menu?table=3
url,table-04,Table 4,https://example.com/menu?table=4
url,table-05,Table 5,https://example.com/menu?table=5
url,table-06,Table 6,https://example.com/menu?table=6
url,table-07,Table 7,https://example.com/menu?table=7
url,table-08,Table 8,https://example.com/menu?table=8
url,table-09,Table 9,https://example.com/menu?table=9
url,table-10,Table 10,https://example.com/menu?table=10

Example CSV: 10 LINE counter stickers

type,filename,label,lineId
line,line-01,Add LINE,@YourShop
line,line-02,Order on LINE,@YourShop
line,line-03,Chat with us,@YourShop
line,line-04,Shop LINE,@YourShop
line,line-05,Scan to add,@YourShop
line,line-06,LINE order,@YourShop
line,line-07,Contact LINE,@YourShop
line,line-08,LINE OA,@YourShop
line,line-09,Add friend,@YourShop
line,line-10,LINE here,@YourShop

Example CSV: WiFi per room (10 hotel rooms)

type,filename,label,wifiSsid,wifiPassword,wifiEncryption
wifi,room-101,Room 101,Room101Net,guest001,WPA
wifi,room-102,Room 102,Room102Net,guest002,WPA
wifi,room-103,Room 103,Room103Net,guest003,WPA
wifi,room-104,Room 104,Room104Net,guest004,WPA
wifi,room-105,Room 105,Room105Net,guest005,WPA
wifi,room-106,Room 106,Room106Net,guest006,WPA
wifi,room-107,Room 107,Room107Net,guest007,WPA
wifi,room-108,Room 108,Room108Net,guest008,WPA
wifi,room-109,Room 109,Room109Net,guest009,WPA
wifi,room-110,Room 110,Room110Net,guest010,WPA
  • Pick a type in the dropdown and download bulk-qr-sample-url.csv, bulk-qr-sample-wifi.csv, and so on — one file per type you need.
  • The samples above show 10 real rows each — copy the filename pattern (table-01, line-05, room-305) so print shops know which PNG goes where.
  • Merge multiple types into one ZIP by appending rows to a single CSV (keep the first header row) or export separate batches.
  • You can create the file in Excel, Google Sheets, or any spreadsheet app, then export as CSV (UTF-8).
  • If a cell contains commas, wrap it in double quotes.
  • Rows with missing required fields or invalid values are marked Invalid and skipped from the ZIP.
  • Lists longer than 50 rows are trimmed to the first 50 — split very large jobs into multiple batches.

Step-by-step workflow

  1. 1. Prepare and upload your CSV

    Choose a QR type from the dropdown, download the matching sample CSV, fill your rows, then click Upload CSV. After upload, the preview table shows type, content, filename, label, and Ready/Invalid status for each row.

  2. 2. Choose one design for the whole batch

    Pick a template or customize colors, dot style, logo, frame, and size. The same design applies to every valid row. Per-row labels override the default frame text when a label column is present.

  3. 3. Review valid rows

    Check the summary panel on the right. Only rows marked Ready are included in the export. Fix invalid rows in your spreadsheet and re-upload if needed.

  4. 4. Download the ZIP

    Click Download ZIP to render each PNG one at a time and pack them into bulk-qr-codes.zip. PNG files include your frame, label, and background when selected.

  5. 5. Test before printing

    Open a few PNG files from the ZIP and scan them with your phone at the size you plan to print. Confirm WiFi joins, links open, LINE/WhatsApp opens, and vCard saves correctly.

Common use cases

  • Thai restaurant — 10 table menu QR codes (table-01 … table-10) linking to a Google Sheet or PDF in one ZIP.
  • Shop or cafe — 10 LINE counter stickers (line-01 … line-10) with the same add-friend link and different frame labels.
  • Hotel — WiFi per room for 10 rooms (room-101 … room-110) with filenames that match room numbers.
  • Restaurant — combine menu URLs plus WiFi and LINE rows in one CSV with a shared frame design.
  • Events — WhatsApp support QR plus registration URLs for each session.

Design and print tips

  • Use error correction level Q or H when adding a logo so codes remain scannable.
  • Keep contrast strong between QR dots and the background.
  • Prefer short, stable URLs — fewer characters produce easier-to-scan codes.
  • Name files clearly (table-01, room-305) so print shops know which PNG goes where.
  • For more than 50 codes, export in batches and keep the same design settings each time.

Troubleshooting

A row shows Invalid — what should I check?

Confirm the type column and required fields: url needs https://; wifi needs ssid and password (unless nopass); line needs an ID or line.me URL; whatsapp needs a valid international phone; vcard needs at least a first or last name. Re-export the CSV as UTF-8 if Thai or Chinese characters look wrong.

Why is my ZIP smaller than the number of CSV rows?

Only valid rows are exported. Invalid rows, empty rows, unsupported types, and rows beyond the 50-code limit are excluded.

Can I use Excel on Windows?

Yes. Save or export as CSV. If Excel adds a BOM or semicolon separators, open the file in a text editor and confirm commas separate columns and the url header is present.

Does the label column work with every frame style?

The label replaces frame text when your design uses the label frame. Other frame styles ignore the label column but still export the QR correctly.

Will these QR codes expire?

No. Static URL QR codes keep working as long as the destination website stays online. Changing a link later requires generating a new code.

How to create this QR code

  1. 1

    Prepare a CSV with type, filename, optional label, and fields for each QR type, then upload it.

  2. 2

    Pick a template or customize colors, logo, frame, and size for the whole batch.

  3. 3

    Review valid rows and download the ZIP when you are ready to print or share.

Frequently asked questions

What CSV format should I use?

Use a header row with type plus the columns for each QR type (url, wifiSsid, lineId, etc.). Leave unused columns empty. Legacy files with only url, filename, and label still work.

Is there a limit on how many codes I can create?

Each batch supports up to 50 QR codes so export stays fast on everyday devices, including phones and laptops with about 4 GB of RAM.

Do you store my CSV or QR codes?

No. Parsing, rendering, and ZIP creation run entirely in your browser. Nothing is uploaded to our servers for bulk export.

Can I use the same design for every code?

Yes. Pick one template or customize colors, logo, and frame once — the design applies to the entire batch. Use the label column to vary frame text per row.

What file format do I get?

A ZIP archive of PNG images. Each PNG composites the QR code with your selected frame, label, and background when enabled.