WoluTools

Barcode & Label Print Pack Builder

Bulk barcode labels from Excel or CSV

Upload one spreadsheet and get one label per row: a print-ready PDF and a ZPL file for Zebra and other ZPL label printers.

  • Code 128, EAN-13, EAN-8, UPC-A, Code 39, ITF, QR and Data Matrix, set per row in a type column
  • Any label size from 20 × 15 mm to 210 × 297 mm; ZPL for 203, 300 or 600 dpi printers
  • Every barcode is decoded again before it goes into the PDF. Rows that fail are listed with their row number.
START HEREChoose your spreadsheetXLSX, CSV

Limits: 1 sheet per pack with up to 100,000 rows and 2,000 printed labels; free jobs take sheets up to 10 MB, larger sheets up to 64 MB need Pro.

FREE3 jobs a dayNo account needed
PROUp to 200 jobs a day€12.99/month or €89.99/year
See plans

Failed jobs are never counted. The free counter resets at midnight UTC.

WHAT YOU GETSample data

Your sheet

Sample spreadsheet with four rows
Rowvaluetypename
2WT-10482Code128Hex bolt M8 x 40
34006381333931EAN13Washer M8
4BIN-A07-03Code128Shelf A7, bin 3
54006381333932EAN13Washer M10

Your labels, one PDF page each

  1. Hex bolt M8 x 40Code128 • source row 2
  2. Washer M8EAN13 • source row 3
  3. Shelf A7, bin 3Code128 • source row 4

Row 5 rejected: the EAN-13 check digit should be 1, not 2. The row is listed in the validation CSV and no label is printed for it.

4 rows in, 3 labels out, 1 row rejectedEach label is one PDF page at your label size (70 × 40 mm by default). The download also holds the ZPL file, the row validation CSV, a technical JSON and a manifest.
Formats, limits & file handling
Works with
XLSX, CSV
Limit
1 sheet · 100,000 rows · 2,000 printed labels · 10 MB free, up to 64 MB with Pro
You receive
PDF, ZPL, row validation CSV, technical JSON and manifest
File handling
Draft 2 hours · source deleted after processing · encrypted result 24 hours

HOW IT WORKS

From spreadsheet to printable labels.

  1. 01
    Prepare the sheet

    One row per label. A value column and a type column are needed; a name and a quantity column are optional.

  2. 02
    Set the label

    Enter width and height in mm and pick 203, 300 or 600 dpi for the ZPL file. You check the job before it runs.

  3. 03
    Download

    Get the PDF, the ZPL file and the validation CSV. Failed jobs are never counted.

Sheet setup

How to set up the spreadsheet

Row 1 holds the column names. Each row below it becomes one label, or several when a quantity column is filled in. The first worksheet is used unless you enter another worksheet name.

Columns the tool recognises
ColumnHeader names it findsNeeded
Barcode valuevalue, barcode, code, dataYes
Barcode typetype, symbology, barcode_typeYes
Label textlabel_text, text, description, nameNo. Without it the barcode value is printed as the label text.
Copiesquantity, qty, copiesNo. A whole number from 1 to 1,000.

If your columns have other names, type the value and type column names into the tool settings.

Type names and allowed values

  • Code128 1 to 80 printable ASCII characters.
  • EAN13, EAN8, UPCA 12, 7 or 11 digits. A missing check digit is added; a wrong one rejects the row.
  • Code39 digits, capital letters, space and - . $ / + %, up to 80 characters. Lower case is turned into capitals.
  • ITF an even number of digits, 2 to 80.
  • QR up to 1,000 bytes. DataMatrix up to 500 bytes.

Upper or lower case and hyphens in the type column do not matter, so EAN-13 and ean13 both work. EAN and UPC are read as EAN-13 and UPC-A. Values that appear on more than one row are flagged as a warning.

What it does not do

GS1-128 with FNC1 application identifiers is not supported in this version. The tool checks that every barcode image decodes to the right value; it does not grade print contrast on your printer.

Example run

480 rows in, 472 labels out, 8 rows rejected

A prepared run with fictional product data. It shows what the validation report says about rows that cannot be printed.

✓
Nothing is uploadedPublic demo only

Validation report

Why rows were rejected

Rows that fail stay in the validation CSV with their row number, so you can fix them in the sheet and run the pack again.

  • ErrorInvalid EAN-13 check digitRow 118 · supplied 4006381333932 · expected …31
  • ErrorQR value too longRow 264 · more than the 1,000-byte limit for QR
  • CheckRead back before exportEvery accepted barcode image was decoded again before the PDF and ZPL were written
Rows
480
Decoded back
472
Rejected
8
Show the package contents

PDF, ZPL, row validation CSV, technical JSON and manifest

Engine barcode-label-pack-v1 · rules barcode-verification-2026-08-30

Clear answers

Bulk barcode labels FAQ

Can I upload an Excel file directly?

Yes. Upload an XLSX workbook or a CSV file. The first worksheet is used unless you enter another worksheet name, and row 1 must hold the column names.

Which columns does the sheet need?

A value column (value, barcode, code or data) and a type column (type, symbology or barcode_type). A label text column (label_text, text, description or name) and a quantity column (quantity, qty or copies) are optional. Other column names can be entered in the tool settings.

What are the limits?

One sheet per pack with up to 100,000 rows and 2,000 printed labels. Free jobs take sheets up to 10 MB; larger sheets up to 64 MB need Pro.

Which barcode types can be generated?

Code 128, EAN-13, EAN-8, UPC-A, Code 39, ITF, QR and Data Matrix. GS1-128 with FNC1 application identifiers is not supported in this version.

Can I print several copies of one label?

Yes. Add a quantity, qty or copies column with a whole number from 1 to 1,000. The pack can hold up to 2,000 printed labels in total.

Why would a row be rejected?

Typical causes are an EAN-13 check digit that does not match the other digits, characters Code 39 cannot encode, or a QR value longer than 1,000 bytes. Rejected rows stay in the validation CSV with their row number.

How do I know the barcodes will scan?

Every accepted barcode is drawn as an image and decoded again before it goes into the PDF and ZPL file. That proves the encoding is right; it does not grade print contrast or your printer.

What is in the download?

A PDF with one page per label at your label size, a ZPL file for 203, 300 or 600 dpi printers, the row validation CSV, a technical JSON and a manifest.

Available now

Turn your spreadsheet into barcode labels.

3 free jobs a day with sheets up to 10 MB, no account needed. Pro: up to 200 jobs a day.