The Complete Guide to Batch Label Printing from Spreadsheets
Everything you need to know about printing labels from data — from preparing your spreadsheet to printing the final PDF. Covers CSV, Excel, Google Sheets with DYMO, Zebra, Brother, and Avery label printers.
Open the Label Editor →1. What Is Batch Label Printing?
Batch label printing (also called variable data printing or mail merge) means creating one label template and using it to print many labels — each with different data. Instead of designing labels one by one, you:
- Design one template with placeholder fields like
{{name}} - Connect a data source (spreadsheet, CSV, Google Sheet)
- Export — each row in your data becomes a unique label
This is the same concept as Microsoft Word's "Mail Merge" feature, but purpose-built for labels and significantly easier to use.
2. Supported Data Sources
OpenLabelMaker accepts data from four input methods:
📁 File Upload
Drag & drop or browse. Supported formats:
- • .csv (comma-separated)
- • .tsv (tab-separated)
- • .xlsx (Excel)
- • .xls (Legacy Excel)
- • .ods (LibreOffice)
🔗 Google Sheets
Paste a Google Sheets URL. The sheet must be set to "Anyone with the link can view". No OAuth or add-on needed.
📋 Paste
Copy cells from Excel, Google Sheets, Numbers, or any spreadsheet app and paste directly. Auto-detects tab/comma separation.
✏️ Manual
Type data directly in an editable table. Add rows, fill sequences. Good for small batches or sequential numbering.
3. Preparing Your Data
Good data = good labels. Follow these rules for clean imports:
name, address, sku. Avoid spaces and special characters.4. How Placeholders Work
Placeholders are the magic. Any text element on your label can contain {{column_name}} — and it gets replaced with real data from that column for each label.
Template:
Output (row 1):
Special placeholders:
- •
{{#}}— auto-incrementing number (1, 2, 3...). Works with manual fill sequence. - • Empty values — if a cell is empty, the placeholder is replaced with nothing. Text elements with only empty placeholders collapse (no blank lines).
- • Barcodes — set a barcode's value to
{{sku}}and each label gets a unique barcode. - • QR codes — same principle.
{{url}}generates a unique QR per label.
5. Barcodes and QR Codes in Batch
Batch barcode labels are the killer feature. Each label gets a unique, scannable barcode generated from your spreadsheet data. Supported formats:
Plus Code 39, EAN-8, and ITF-14. Full bulk barcode guide →
6. Sheet Labels vs Printer Labels
Batch output differs depending on your label type:
📄 Sheet Labels (Avery, HERMA)
Labels fill grid positions on A4/Letter pages. Row 1 = position 1, Row 2 = position 2, etc. When a page fills up, a new page starts.
- • 200 addresses on Avery L7160 (21/sheet) = 10 pages
- • Supports "Start at label" offset for partially used sheets
- • Print on any inkjet or laser printer
🖨️ Printer Labels (DYMO, Zebra, Brother)
Each row = one page in the PDF. Page dimensions match the label exactly. The printer feeds one label per page.
- • 500 products on DYMO 11354 = 500-page PDF
- • Print settings: borderless, 100% scale, no margins
- • Works with any thermal or direct-print label printer
7. Advanced Features
Repeat count
"Print each label ×" — print 5 copies of each product label. A 100-row CSV with repeat=5 becomes 500 labels.
Start-at-label offset
For sheet labels: if you've already used the first 7 labels on a sheet, set offset to 8 and printing starts at position 8. No wasted sheets.
Empty field collapsing
If a placeholder resolves to empty (cell is blank), the text element hides and remaining elements shift up. No ugly blank lines on your labels.
Auto-save with batch data
Your imported data is saved with your label design. Reopen the design later and the data is still there. Also exports in .olm.json save files.
Sequential numbering
Use {{#}} with the manual fill sequence feature. Generate numbered labels (001→500) without a spreadsheet.
8. Troubleshooting
Fields show {{field}} instead of data
The placeholder name must exactly match a column header in your data. Check for typos, spaces, or capitalisation differences. {{Name}} ≠ {{name}}.
Some barcodes don't render
Barcode formats have strict rules. EAN-13 requires exactly 12 or 13 digits. UPC-A requires exactly 11 or 12 digits. If your data doesn't match the format, the barcode fails to render. Use Code 128 for mixed/alphanumeric data.
Google Sheets import fails
Make sure your sheet is set to "Anyone with the link can view". Private sheets can't be fetched. Also check that the URL is a regular Google Sheets URL (not a shared drive or shortened link).
PDF generation is slow with 1000+ labels
This is normal — each label is rendered as a high-quality image in your browser. Give it 15–30 seconds. If it's too slow, try splitting your data into batches of 500.
Labels print misaligned on Avery sheets
In your print settings: set scale to 100% (NOT "Fit to page"), margins to "None", and make sure the paper size is A4 or US Letter as appropriate. Some printers have a small offset — do a test print with 1 page first.
9. Specific Guides by Data Source & Use Case
Ready to batch print?
Open the editor, pick a label size, design with {{placeholders}}, upload your data, and print. The whole process takes under 5 minutes.
Start Batch Printing →