Bulk Barcode Generator: How to Create Hundreds of Barcodes at Once

Generate barcodes in bulk for inventory, products, or shipping. Covers batch workflows using spreadsheets, command-line tools, and online generators with CSV import.

Creating barcodes one at a time works fine until you need 50. Or 500. Or 5,000. At that point, you need a batch workflow that takes a list of data and spits out barcode images or print-ready labels without clicking "generate" for each one.

This guide covers three approaches, from simplest to most powerful, so you can pick the one that fits your volume and technical comfort level.

Approach 1: Online Generator (1-50 Barcodes)

If you need fewer than 50 barcodes and don't mind clicking through each one, a free online generator is the easiest path.

How It Works

  1. Open our barcode generator
  2. Select your format (Code 128 for inventory, EAN-13 for products, etc.)
  3. Enter the data for your first barcode
  4. Download as PNG or SVG
  5. Repeat for each barcode

When This Makes Sense

  • One-time projects: labeling 30 pieces of equipment, creating shelf tags for a small stockroom
  • You need a few different barcode formats in the same batch
  • You want to visually verify each barcode before downloading

When to Move to a Bulk Method

If you catch yourself generating barcodes for more than 15 minutes, a batch method will save time. Anything above 50 barcodes is faster with Approach 2 or 3.

Approach 2: Spreadsheet + Label Software (50-500 Barcodes)

This is the sweet spot for most small businesses. You keep your data in a spreadsheet and use label software to turn each row into a barcode on a label.

Step 1: Build Your Data Spreadsheet

Open Excel, Google Sheets, or any spreadsheet app. Create columns for the data you need on each label.

For inventory labels:

Column A: Barcode DataColumn B: DescriptionColumn C: Location
INV-0001Wireless MouseShelf A-3
INV-0002USB KeyboardShelf A-3
INV-0003Monitor StandShelf B-1
INV-0004Desk LampShelf B-2

For product labels:

Column A: UPC NumberColumn B: Product NameColumn C: Price
012345678905Widget Small$9.99
012345678912Widget Large$14.99
012345678929Widget XL$19.99

For sequential numbering, use formulas in your spreadsheet:

In Excel or Google Sheets, put your prefix in A1 and in A2 enter:

=TEXT(ROW()-1,"0000")

This generates 0001, 0002, 0003, etc. Prepend a prefix with:

="SKU-"&TEXT(ROW()-1,"0000")

Copy the formula down for as many rows as you need. That gives you SKU-0001 through SKU-whatever.

Step 2: Export as CSV

Save your spreadsheet as a CSV file. Every bulk barcode tool accepts CSV as input.

In Excel: File > Save As > CSV (Comma delimited) In Google Sheets: File > Download > Comma Separated Values (.csv)

Step 3: Generate Labels with Label Software

Several options here, depending on your printer and budget.

Avery Design & Print (Free, Web-Based)

Good for printing on Avery adhesive label sheets with a regular office printer.

  1. Go to avery.com/templates
  2. Select your label product number
  3. Choose a template with a barcode field
  4. Import your CSV file
  5. Map spreadsheet columns to label fields
  6. The software generates a barcode for each row
  7. Preview and print

ZebraDesigner (Free, for Zebra Printers)

If you have a Zebra thermal printer, ZebraDesigner is the right tool.

  1. Download ZebraDesigner from Zebra's website
  2. Create a label template matching your label size
  3. Add a barcode field and a text field
  4. Connect to your CSV as a data source
  5. Map columns to fields
  6. Print — the software generates a unique barcode per label

DYMO Connect (Free, for DYMO Printers)

Similar workflow for DYMO thermal printers. The software includes barcode fields that you can map to spreadsheet data.

BarTender (Paid, Professional)

BarTender is the industry standard for high-volume label printing. It connects to databases, CSV files, Excel files, and ERP systems. Pricing starts around $495 for the basic edition. Worth it if you print thousands of labels regularly.

Step 4: Verify a Sample

Before printing your full batch:

  1. Print 5-10 labels
  2. Scan each one with a barcode scanner to confirm the data matches
  3. Check alignment — barcodes should be centered on labels with quiet zones on all sides
  4. If anything is off, adjust the template and reprint the sample

Approach 3: Script-Based Generation (500+ Barcodes)

For large batches, or if you need to automate barcode generation as part of a larger workflow, a script gives you full control.

Python with python-barcode

The python-barcode library generates most 1D barcode formats. Quick setup, no dependencies beyond Python and Pillow (for PNG output).

Install:

pip install python-barcode pillow

Generate a single barcode:

import barcode
from barcode.writer import ImageWriter

code = barcode.get('code128', 'INV-0001', writer=ImageWriter())
code.save('barcode_INV-0001')

Batch generate from CSV:

import csv
import barcode
from barcode.writer import ImageWriter

with open('inventory.csv', 'r') as file:
    reader = csv.reader(file)
    next(reader)  # Skip header row
    for row in reader:
        barcode_data = row[0]
        code = barcode.get('code128', barcode_data, writer=ImageWriter())
        filename = f'barcodes/{barcode_data}'
        code.save(filename)
        print(f'Generated: {filename}.png')

This reads your CSV, generates a PNG for each row, and saves them into a barcodes/ folder. A thousand barcodes takes about 20 seconds on a typical laptop.

Generate with SVG output (for print quality):

import csv
import barcode

with open('inventory.csv', 'r') as file:
    reader = csv.reader(file)
    next(reader)
    for row in reader:
        barcode_data = row[0]
        code = barcode.get('code128', barcode_data)
        code.save(f'barcodes/{barcode_data}')  # Saves as SVG by default

Python with Pillow for QR Codes

For QR codes in bulk, use the qrcode library:

pip install qrcode pillow
import csv
import qrcode

with open('urls.csv', 'r') as file:
    reader = csv.reader(file)
    next(reader)
    for row in reader:
        url = row[0]
        label = row[1] if len(row) > 1 else url.split('/')[-1]
        img = qrcode.make(url)
        img.save(f'qrcodes/{label}.png')
        print(f'Generated: {label}.png')

Zint (Free, Command-Line)

Zint is a powerful open-source barcode generator that handles virtually every barcode format including Data Matrix, Aztec, and GS1 types.

Install on macOS:

brew install zint

Generate a single barcode:

zint -b 20 -d "INV-0001" -o barcode.png

(where -b 20 is Code 128)

Batch generate with a shell loop:

while IFS=, read -r data description; do
  zint -b 20 -d "$data" -o "barcodes/${data}.png"
done < inventory.csv

Zint barcode type codes:

CodeFormat
13EAN-13
20Code 128
34UPC-A
55PDF417
58QR Code
71Data Matrix
92Aztec Code

Node.js with bwip-js

If JavaScript is your language:

npm install bwip-js
const bwipjs = require('bwip-js');
const fs = require('fs');

const items = ['INV-0001', 'INV-0002', 'INV-0003'];

for (const item of items) {
  bwipjs.toBuffer({
    bcid: 'code128',
    text: item,
    scale: 3,
    height: 10,
    includetext: true,
  }, (err, png) => {
    if (err) { console.error(err); return; }
    fs.writeFileSync(`barcodes/${item}.png`, png);
    console.log(`Generated: ${item}.png`);
  });
}

Naming and Organizing Output Files

When generating hundreds of barcodes, file organization matters. A few conventions that save headaches later:

File Naming

Use the barcode data as the filename. INV-0001.png is easier to find than barcode_001.png. If the barcode data contains characters that aren't safe for filenames (slashes, colons), replace them with dashes.

Folder Structure

For large batches, organize by category or batch date:

barcodes/
  2026-03-inventory/
    INV-0001.png
    INV-0002.png
    ...
  2026-03-products/
    012345678905.png
    012345678912.png
    ...

Backup Your Data

Always keep the source CSV alongside the generated barcodes. If you need to regenerate (different size, different format, or reprints), the CSV is your single source of truth.

Choosing the Right Barcode Format for Bulk

Use CaseFormatWhy
Internal inventoryCode 128Handles any alphanumeric data, compact, universal scanner support
Retail productsUPC-A or EAN-13Required by retailers, needs GS1 registration
Shipping casesITF-14Designed for corrugated cardboard, reads through rough printing
Small itemsData MatrixCompact 2D format for tight spaces
URLs or marketingQR CodeScannable by any phone camera
Healthcare / serializationGS1 Data MatrixStructured data with GTIN, lot, expiry, serial

For most internal-use bulk barcode projects, Code 128 is the right choice. It's flexible, compact, and works with every scanner.

Performance and Limits

How long does bulk generation actually take?

Method100 Barcodes1,000 Barcodes10,000 Barcodes
Online generator (manual)~30 minNot practicalNot practical
Label software (CSV import)~5 min~10 min~30 min
Python script~3 sec~20 sec~3 min
Zint command line~2 sec~15 sec~2 min

Scripts are by far the fastest. But label software wins if you need the barcodes on printed labels rather than as standalone image files, because it combines generation and layout in one step.

8 min read

Frequently Asked Questions

Can I generate barcodes in bulk for free?
Yes. You can create barcodes one at a time using a free online generator like ours, or use free open-source tools like python-barcode or zint for batch generation from spreadsheets and CSV files. Commercial label software also handles bulk generation but typically costs $50-300.
How do I generate barcodes from a spreadsheet?
Export your barcode data from your spreadsheet as a CSV file, with one barcode value per row. Then use a batch barcode tool (command-line tools like python-barcode, or label software like BarTender or ZebraDesigner) to read the CSV and generate one barcode image per row. Some tools also merge barcodes directly onto label templates for printing.
How many barcodes can I generate at once?
There's no technical limit when using desktop or command-line tools. Python scripts and dedicated barcode libraries handle thousands of barcodes in minutes. Online generators may have per-session limits, but desktop tools running on your computer have no such cap. A typical laptop can generate 1,000 Code 128 barcodes as PNG files in under 30 seconds.
What's the fastest way to create bulk barcode labels?
The fastest workflow is: prepare your data in a spreadsheet, export as CSV, use a mail-merge feature in label software (Avery Design & Print, BarTender, or ZebraDesigner) to map the CSV to a label template with barcode fields. The software generates a unique barcode per label and prints the entire batch. For thermal printers, ZebraDesigner and DYMO Connect handle this natively.
Can I generate sequential barcode numbers automatically?
Yes. Most bulk barcode tools support sequential numbering. In a spreadsheet, use a formula to generate sequential IDs (like INV-0001, INV-0002, etc.), then export to CSV. In Python, a simple loop generates any sequence. Label software like BarTender also has built-in serialization that auto-increments numbers across labels.