Bulk QR Code Generator From a CSV File
A CSV is the most reliable way to hand a long list of destinations to a generator, because it comes straight out of the systems where those lists already live — a spreadsheet, a CMS export, a stock report. The catch is that CSV is a loose format, and most failed batch runs are caused by the file rather than the tool: a stray delimiter, a smart quote pasted in from a document, an encoding mismatch that turns an accented character into nonsense. This page covers the exact format QRPixel expects and the preparation that makes a run succeed first time.
What you get
Import a CSV exported from Excel, Numbers, Google Sheets or any CMS
One QR code per row, named from your own name column
Progress display and per-row previews before download
Single ZIP archive containing the whole set
Parsed and rendered in your browser — the file is never uploaded
The CSV format the generator expects
Two columns are all you need: the content to encode and the filename to use. Put a header row on top, keep one row per code, and avoid merged cells or blank separator rows — spreadsheets tolerate those visually, but a CSV export turns them into empty rows that produce nothing useful.
Save as CSV UTF-8 rather than plain CSV where your spreadsheet offers the choice. That single setting prevents the most common corruption, where accented characters and symbols in filenames arrive as replacement characters on the other side.
Preparing the file so the run succeeds first time
Trim whitespace from both columns; a trailing space on a URL is invisible in a spreadsheet and can produce a link that 404s. Watch for curly quotes and en dashes if any of the text was pasted from a word processor, since those are different characters from the straight quotes and hyphens a URL expects.
If a value itself contains a comma, it must be wrapped in straight double quotes — every spreadsheet does this automatically on export, which is another reason to export rather than hand-edit a CSV in a text editor.
Running the import step by step
Open the bulk QR generator and choose your CSV. The tool parses it, shows how many rows it found, and reports anything it had to skip — that count is your first sanity check, because a number that does not match your spreadsheet means the file has empty or malformed rows.
Set the size and styling for the batch, start the run, and watch the previews appear. Scan a few, then download the ZIP. If something is wrong, fix the CSV and re-run; nothing is stored between runs.
Why rows fail and how to fix them
The three recurring causes are empty rows at the bottom of the file, a delimiter mismatch in regions where spreadsheets export with semicolons instead of commas, and encoding problems from a non-UTF-8 export. All three are solved in the spreadsheet rather than the generator.
Duplicate names are handled rather than rejected: a repeated filename gets a numeric suffix so both codes survive. It is still worth deduplicating the source, because two rows sharing a name usually means the export contained the same record twice.
Typical CSV workflows
A conference exports its session list, adds a feedback URL column with a session ID in the query string, and produces one code per room sign. A warehouse exports its bin list and generates a code per location that opens the stock record. A restaurant group exports its venue list and produces a menu code per site, each named after the branch.
In all three the CSV is a byproduct of a system that already exists, which is what makes this route fast — nobody types the list twice.
Your spreadsheet stays on your machine
CSV exports often carry more than the two columns you need — customer references, internal IDs, prices left in adjacent columns. Because parsing and rendering happen in the browser, the file is never transmitted, so an over-inclusive export is not a disclosure risk.
Create Your QR Code
Frequently Asked Questions
What columns does the CSV need?
One column for the content to encode and one for the filename, with a header row. Keep it to one row per code and avoid blank separator rows.
Should I export as CSV or CSV UTF-8?
CSV UTF-8. It preserves accented characters and symbols; plain CSV exports are the usual cause of garbled filenames.
My spreadsheet exports with semicolons — will that work?
Comma-delimited files are expected. If your regional settings export semicolons, change the delimiter on export or use your spreadsheet's CSV UTF-8 option.
What happens to empty rows?
They are skipped, and the reported row count will be lower than your spreadsheet's line count — a useful signal that the file has trailing blank lines.
How large a CSV can I import?
Files up to a few megabytes import comfortably, which is far more rows than most batches need. Very large runs are limited by your browser rather than a server quota.
Is the CSV uploaded anywhere?
No. Parsing, code generation and ZIP packaging all happen locally in your browser, so the spreadsheet never leaves your device.
Related pages and guides
- Bulk QR generator — Import your CSV and download the ZIP.
- Bulk QR generator — The batch tool itself, including free unlimited generation.
- QR codes for multiple URLs — One code per link, and what a code cannot do.
- Inventory QR code generator — A common source of bulk CSV lists.
- All QRPixel tools — Decoder, scanner, barcode and bulk tools.