Bulk QR code generator
Drop a CSV, pick the column with the links in it, and download every code as a ZIP. No row limit and no queue — each one is drawn by your own browser, and the spreadsheet never leaves this tab.
Files can be named from a second column, so you get Table 12.png rather than a filename made of a
URL. Every row is encoded before anything downloads, so you know the count first.
Drop a CSV here
Read in this tab — a product export or a guest list is not a file to hand to a server. Comma, semicolon and tab separated all work.
or drop a folder here, or paste an image with Ctrl + V
Nothing is uploaded. The CSV is read, the codes are drawn and the ZIP is packed on your own machine.
What the spreadsheet usually is
Nobody generates four hundred QR codes for fun. The list is a guest register with names and table numbers, a product export with SKUs and prices, an asset inventory, a set of per-customer links, or a school's pupil records. Every one of those is a file with something in it you would not email to a stranger.
Which is the whole argument for doing this in a browser. A bulk generator that works by upload necessarily takes the entire sheet — not just the column you pointed at — onto hardware you do not control, for a job that is arithmetic and needs no server at all. Open the Network tab and use this one: nothing moves.
The CSV cases that break other tools
Reading a spreadsheet export is not the trivial part it looks like, and the failures are quiet rather than loud — you get four hundred codes, and forty of them contain half a value.
| What is in the file | Where it comes from | Handled |
|---|---|---|
| A comma inside a quoted field | Any address or name column | Yes |
| A line break inside a quoted field | An address pasted into one cell | Yes |
| Semicolons instead of commas | Excel in most of Europe | Detected automatically |
| A byte order mark on the first header | Excel, every time | Stripped |
| CRLF, LF or a lone CR | Windows, Unix, old Macs | Yes |
| Rows shorter than the header | Writers drop trailing empty cells | Padded, not dropped |
The separator is worked out by looking at which candidate appears the same number of times on every row, not the one that appears most often — a column of addresses contains more commas than a semicolon-separated file has semicolons, and counting alone picks the wrong one.
Why these codes never expire
The link is encoded into the pattern. There is no redirect in the middle, which means nothing to expire, nothing counting scans, and no subscription keeping a batch of printed codes alive. Services that offer "dynamic" QR codes point every one of them at their own domain first; that is a genuine feature if you need to repoint a code after printing, and a genuine liability if the company folds or starts charging.
The trade is real and worth stating: a static code cannot be changed once printed. If the destination might move, point it at a URL you control and redirect from there — you keep the ability to change it without handing a third party the ability to switch it off.
Error correction, and the one time it matters
Every QR carries redundancy so a damaged or partly covered code still scans. Level M recovers about 15 per cent and is the sensible default. Level H recovers about 30 per cent, at the cost of a denser pattern that needs to be printed larger.
Reach for H when the codes are going somewhere they will be scuffed — a warehouse floor, a delivery label, an outdoor sign — or when a logo will be placed in the middle. For a batch of stickers going onto clean packaging, M is plenty and prints smaller.
Naming, which matters more at four hundred than at one
A single code can be called qr-code.png. Four hundred cannot. Point the naming at a column with
something meaningful in it — a table number, a SKU, an asset tag — and the files arrive sorted and findable.
Characters a filesystem cannot hold are replaced rather than passed through, because a slash in a spreadsheet cell would otherwise create a folder inside the ZIP. Two rows with the same label are numbered instead of one silently overwriting the other, which is the failure you would not notice until the count came up short.
Questions
How do I make hundreds of QR codes at once?
Drop a CSV in, choose the column holding the links, and download the lot as a ZIP. There is no row limit and no queue, because every code is drawn by your own browser rather than by a server working through a job.
Is my spreadsheet uploaded?
No, and it is worth thinking about what that file usually is. A batch of QR codes comes from a guest list, a product export, an asset register or a set of customer links — a spreadsheet of exactly the sort that should not be handed to a service you know nothing about. It is read in this tab and no request carries it.
What should the CSV look like?
One row per code, with a column holding the link or text. Anything a spreadsheet exports works: comma, semicolon or tab separated, quoted fields, commas and line breaks inside quotes, and the byte order mark Excel adds. You can also paste a plain list, one value per line, without making a file at all.
Can I name each file after something other than the link?
Yes — pick a second column and each file is named from it. That is usually what you want: Table 12.png is findable and https___example_com_e_9f2a.png is not. Duplicate names are numbered rather than overwritten.
Do these codes expire or get tracked?
Neither. The link is encoded into the pattern itself, so there is no redirect service in the middle — nothing to expire, nothing counting scans, and no monthly fee to keep a batch of printed codes working. The trade is that a code cannot be repointed later, which is the honest cost of not depending on anybody.
PNG or SVG?
SVG for anything being printed, because it is pure geometry and stays sharp at any size a printer asks for. PNG for screens and for software that will not take a vector. A QR is squares on a grid, so the SVG is small and there is no quality decision to make.
Is there a limit on how many?
No fixed one. A few thousand is comfortable; the practical ceiling is your own machine’s memory, since the ZIP is assembled there. The tab stays responsive while it runs and the count tells you where it has got to.
What BriskFile will not do to you
-
Your files never leave your device
Every conversion runs in your browser. Open DevTools, watch the Network tab, and you will see no upload — because there is not one.
-
No account, no email, no watermark
Nothing to sign up for and nothing stamped on your images. There is no step between choosing a file and getting it back.
-
No limits at the download button
No daily cap, no file counter, no "upgrade to download". If the tool starts a job, it finishes it.
-
Checkable, not just claimed
Open the Network tab and convert something — nothing goes out. Or load the page, disconnect, and watch it keep working: the tool is already on your machine, and your file never leaves it.