Excel to ZPL
Turn every row of an Excel sheet or CSV file into a ZPL label for your Zebra printer. Write the label once with {column} fields where the data goes, check any row in the preview, and download one ZPL file that holds a label per row — product tags, shelf labels, asset tags, name badges, or a pallet run.
Starting from an existing label? Check it in the ZPL viewer first. Want the labels as a document? ZPL to PDF. Rather drag fields than write ZPL? The label designer prints from spreadsheets too.
Your data
Sample data• 4 rows| # | Product | SKU | Price | Copies |
|---|---|---|---|---|
| 1 | Stainless Water Bottle | WB-1001 | 24.99 | 2 |
| 2 | Canvas Tote Bag | TB-2040 | 18.50 | 1 |
| 3 | Ceramic Mug — 12 oz | MG-3312 | 14.00 | 3 |
| 4 | Café Blend Coffee 1 lb | CF-0042 | 16.75 | 1 |
Drop an .xlsx, .csv or .tsv file here. The first row is read as column names. Your file is read in this browser and is not uploaded.
ZPL template
Click a column to insert it at the cursor:
Preview and download
Preview row 1 as it prints.
The ZPL file holds every row, free. A PDF of all 4 rows in one file is part of a paid plan.
Note on Watermarks: The ZPL download never carries a watermark: it is your template with your data in it. The on-screen preview and free PDFs are drawn by LabelZoom and show a small watermark that never reaches the printer file. Paid plans remove it and render every row into one PDF.
Your template comes back exactly as you wrote it, with only the {fields} replaced: no font swaps, no rewritten commands.
Spreadsheets are read in the browser. Product lists, prices and addresses stay on your machine.
Values with ^, ~ or accents are escaped for you, so a stray caret in a part number can't break the label.
How to print labels from Excel
- 1
Load your data: drop an .xlsx, .csv or .tsv file, or copy the cells in Excel or Google Sheets and paste them. Keep column names in the first row. Older .xls and .ods files need saving as .xlsx or CSV first.
- 2
Write the ZPL label, or paste one you already print, and click a column to drop its
{field}into a^FD. Barcodes take a field the same way as text:^BCN,100^FD{SKU}^FS. Set the print density to match your printer. - 3
Step through rows in the preview, then download the ZPL and send it to the printer the way you already do, or use Print to reach a printer connected through LabelZoom Cloud Print.
Fill the same template from your own code
When the rows come from an ERP, a WMS or a nightly job instead of a spreadsheet, keep the template and send the rows as JSON. The conversion API fills {Product} and {SKU} in each ^FD and returns one label per entry.
curl -X POST 'https://api.labelzoom.com/api/v2/convert/zpl/to/zpl' \ --url-query 'params={"data":[{"Product":"Canvas Tote Bag","SKU":"TB-2040"},{"Product":"Ceramic Mug","SKU":"MG-3312"}]}' \ -H 'Content-Type: text/plain' \ --data-binary '^XA^FO40,40^A0N,46,46^FD{Product}^FS^FO40,110^BY3^BCN,100,Y,N,N^FD{SKU}^FS^XZ'
Merge-field rules and the data parameter are in the merge fields reference. SDKs and keys: ZPL API.