Bulk Barcode Generator
Turn a CSV or number list into a ZIP of barcode images.
What this tool does
Generates a barcode for every row of a CSV or a pasted list, and packs them into a ZIP. Code 128, EAN-13, UPC-A, EAN-8, ITF-14, ITF, Code 39, Codabar, MSI and ISBN are supported, each with the full validation rules of its dedicated generator.
Just paste a list
The simplest input is one number per line with no header at all — paste a column straight out of a spreadsheet and it works. For file names, use a two-column CSV and map the columns.
Every row is validated
Check digits are calculated or verified per row, lengths are enforced, and character sets are checked. A row whose EAN-13 check digit is wrong is reported with the row number and the correct digit, then excluded — so a bad master file gets caught here rather than at a printer or a distribution centre. The error report downloads as CSV.
Where this saves real time
Onboarding a product range, re-labelling a warehouse, generating asset tags, preparing artwork for a print shop. The alternative — pasting numbers into a generator 300 times — is where transposition errors come from.
Then print them
For a sheet of labels rather than individual files, the barcode label maker takes the same list and lays it out on Letter or A4 label stock with cut guides and printer alignment. Use the size calculator first if the X-dimension matters to your trading partner.
Privacy and limits
SKUs, GTINs and batch numbers stay on your device — nothing is uploaded and nothing is stored. Batches are capped at 500 rows, and generation is chunked so the page stays usable and cancellable throughout.
Every row is validated against its symbology
This is the difference between a bulk barcode tool and a bulk image generator. Each row is checked against the rules of the format you selected before anything is drawn: digit count, permitted characters, and the check digit where the symbology has one.
So a 12-digit value in an EAN-13 column is reported as the wrong length rather than being padded into a plausible-looking wrong barcode; a letter in a UPC column is rejected rather than dropped; and a supplied check digit that does not match is flagged with the correct one. A batch of 500 labels that scan into the wrong products is a far more expensive outcome than a batch that refuses to generate.
Where the check digit is omitted and the symbology allows it, it is calculated and added — so a 12-digit column of EAN-13 payloads is fine, as long as that is what you intended.
Getting the source data right
Spreadsheets are the main source of bad barcode data, and always in the same three ways:
- Leading zeros are gone. Excel reads
0036000291452as a number and stores 36000291452. Format the column as Text before pasting, or prefix each value with an apostrophe. This is the single most common cause of a failed bulk barcode run. - Long numbers became scientific notation.
5.90123E+12in a cell means the underlying value is already damaged — retyping the display value will not recover the original digits. - Invisible whitespace. A trailing space from a copy-paste makes a 13-digit value 14 characters long. Run
=TRIM()over the column first.
Check one value end-to-end with the barcode validator before uploading 500 of them.
Limits, file names and privacy
Up to 500 rows per batch, for the same browser-memory reason as the QR bulk tool. Larger lists should be split; the tool tells you when rows have been left out rather than silently truncating.
File names come from your filename column, sanitised for the filesystem. Two rows differing only in punctuation reduce to the same name, and the second gets -2 appended rather than overwriting the first — no label is lost, but you can no longer tell which file came from which row, so check that column for uniqueness first. Exact-duplicate rows are skipped by default, which is usually right for barcodes: two identical GTINs in one list is almost always a data error rather than an intention.
The file is read in your browser and the ZIP is built there. Nothing is uploaded, which for a product catalogue or a customer-order list is the point.
Frequently asked questions
Can I paste a plain list of numbers?
Yes. One value per line with no header is detected and handled.
Are check digits calculated per row?
Yes, using the same rules as the single generators — calculated when you supply the data digits, verified when you supply the full number.
What if some rows are invalid?
They are listed with row numbers and reasons, excluded from the ZIP, and available as an error-report CSV.
Is my product data uploaded?
No. Everything happens in your browser, which matters when the file is an unreleased product range.
My leading zeros disappeared.
The spreadsheet did that, not this tool: Excel reads 0036000291452 as a number. Format the column as Text before pasting values in, or prefix each with an apostrophe. It is the most common cause of a failed bulk barcode run.
Are the numbers checked before the barcodes are drawn?
Yes, against the rules of the symbology you picked — digit count, permitted characters and check digit. A wrong-length value is reported rather than padded into a plausible-looking wrong barcode.
Can I mix symbologies in one CSV?
No. One batch is one symbology, because the validation rules differ. Split the file and run one batch per format.
Curious how we build and check these codes? Read our methodology.