tooloora

Bulk QR Code Generator — from CSV or Excel to many codes

Drop a spreadsheet, pick your columns and download every QR code as a ZIP with speaking file names or as a print-ready A4 label sheet — processed locally, nothing leaves your device.

Runs locally — nothing is uploaded

Drop a CSV or Excel file, or click to choose

CSV, TSV or XLSX — up to 500 data rows, everything stays local

Your spreadsheet stays on your device — parsing, codes, ZIP and PDF are all created in the browser.

This tool turns a spreadsheet into finished QR codes in one pass: drop a CSV or Excel file, pick the column that holds the content and an optional name column, then download every code as a ZIP with speaking file names or as a print-ready A4 label sheet. Up to 500 rows, entirely in your browser.

Which columns does my spreadsheet need?

One column with the QR content is enough — usually a URL, but any text works: Wi-Fi vouchers, serial numbers, ticket codes. A second column is optional and names each code; it becomes the file name in the ZIP and the caption on the label sheet. The separator (comma, semicolon, tab or pipe) is detected automatically, a header row is recognised and can be toggled, and Excel workbooks with several worksheets get a sheet picker. Rows with an empty content cell are skipped and counted openly, and quoted cells with commas or line breaks are handled correctly by the CSV parser.

How many codes fit on one A4 sheet?

An A4 page measures 210 × 297 mm (ISO 216). With the 3 × 8 grid you get 24 labels per sheet, with 4 × 10 it is 40 — or you set your own number of columns and rows. Each label keeps the quiet zone of 4 modules around its code that ISO/IEC 18004 requires so scanners can find the symbol, and crop marks along the page edges show exactly where to cut. Longer lists simply continue on additional pages of the same PDF.

How much content fits into one QR code?

The QR standard ISO/IEC 18004 caps a single code at 2953 bytes in the largest version (40, a 177 × 177 module grid) at the lowest error-correction level — higher correction levels hold less. Short URLs are unproblematic; very long rows can exceed the limit, especially at high error correction. This tool does not fail silently: rows that do not fit are listed with their row number — counted without blank lines, as completely empty rows are dropped on reading — while all other codes are still generated.

Why are there no logos or gradients here?

Deliberately: a logo covers modules and every logo code deserves a test scan — nobody test-scans 500 labels. The batch tool therefore keeps the design plain and reliable: colours and error-correction level are adjustable, shapes, gradients, frames and logos are not. If you want a designed code, create it in the single QR code generator, which previews the scan result live.

How to create the batch

  1. Drop your CSV or Excel file into the tool — it is read locally, nothing is uploaded.
  2. Pick the content column and, optionally, a name column; check the preview and the row count.
  3. Adjust colours and error correction if needed, or keep the defaults.
  4. Download all codes as a ZIP (PNG or SVG) or generate the A4 label sheet as a PDF and print it at 100 % scale.

For single codes with a logo, shapes, gradients and a live scan check: open the QR code generator.

Frequently asked questions

Is my spreadsheet uploaded anywhere?

No. Parsing the file, generating the codes, packing the ZIP and building the PDF all happen locally in your browser — once you have run it, it even works offline. That matters here in particular: batch lists are often customer or inventory data that should never touch a third-party server.

How are the files in the ZIP named?

From your name column (or the content, if you pick none). Umlauts are transliterated (Müller becomes Mueller), characters that break file systems are replaced, and duplicate names get a number suffix (-2, -3) so no file silently overwrites another.

What happens with empty or over-long rows?

Rows with an empty content cell are skipped and counted visibly. Rows whose content exceeds the QR capacity (2953 bytes at the lowest error-correction level per ISO/IEC 18004) are listed with their row numbers, counted without blank lines; all remaining codes are still generated.

Can I print the label sheet directly?

Yes. The PDF is a true A4 page with crop marks, and the codes are drawn as vector rectangles, so they stay sharp at any print size. Print at 100 % (actual size) — printer scaling like fit-to-page would change the label measurements.

Why is the limit 500 rows?

Because everything runs in your browser tab: each code needs its own image and the whole ZIP is assembled in memory. 500 codes stay fast and stable even on mid-range phones. Larger lists are not silently truncated — you get a clear message and can split the file. The same applies to the file itself: uploads bigger than 20 MB are rejected with a clear message.