Print Zebra labels from a Google Sheet in 5 minutes
If you've ever needed to print 50 or 500 product stickers, shipping labels, or inventory tags from a spreadsheet, you know the pain: design 50 labels by hand, or learn complicated mail-merge software, or write ZPL by hand. None of that is fun.
This tutorial walks through the modern way: design one label with placeholders, point mylabelmaker at your Google Sheet, hit Print. It takes about five minutes the first time. Here's exactly what to do.
What you'll need
- A Zebra thermal printer (any ZD, ZT, GK, GX, or ZP model).
- Zebra Browser Print installed on the same computer as the printer (free download from Zebra, Mac or Windows).
- A Google Sheet with the data you want to print, one row per label.
- A modern browser (Chrome, Edge, Brave, Firefox, Safari).
Step 1, open mylabelmaker and start a label
Open the editor in your browser
Go to app.mylabelmaker.com. There's no signup. The editor loads with a blank label.
Pick the right label size from the size pill in the top toolbar. If you don't know exactly what stock you have, click Auto-detect from printer in the printer settings popover (the gear icon next to the printer name) and mylabelmaker will read the size straight off your Zebra.
Step 2, design your base label with placeholders
Add the elements that change per row, with {{tokens}}
Click Text in the left rail to drop a text element on the canvas. Double-click it to edit. Instead of typing actual text like "Acme Widget", type a placeholder like {{name}}. The double curly braces are how mylabelmaker recognizes the token.
Do the same for any element that changes per row: a barcode whose value is {{sku}}, a QR whose URL is https://example.com/product/{{slug}}, a text with ${{price}}, and so on.
{{ }} icon inside the barcode and QR inputs to drop a token at the cursor.What about elements that don't change? A logo, a "Made in USA" line, a decorative border, those stay as normal text or images. Only the parts that differ per row need tokens.
Step 3, publish your Google Sheet as CSV
In Google Sheets: File → Share → Publish to the web
Open your sheet. The top row should be your column names (these become your tokens: name, sku, price, etc.). Every row below is one label.
Go to File → Share → Publish to the web. In the dialog, pick the sheet/tab you want, then change the dropdown from "Web page" to Comma-separated values (.csv). Click Publish, confirm, and copy the URL Google gives you.
Step 4, paste the URL into the Variables panel
Open Variables, switch to "Google Sheet", paste the URL
Back in mylabelmaker, click Variables in the left rail. The panel opens to the right. Switch the source tab to Google Sheet and paste your URL into the field. After about a second, the editor fetches the sheet, parses it, and shows a green "Loaded N rows" status.
Two things happen automatically:
- Your column names appear as one-click chips at the top of the panel. Click any chip to insert that token at the cursor in your last-edited text, barcode, or QR field.
- A row navigator strip appears below the canvas, showing "Row 1 / N" with first / prev / next / last buttons and a slider. The canvas now shows row 1's substituted label live.
Step 5, preview each row and edit any value
Verify a few rows before you commit ink
Click the navigator's next/prev arrows or drag the slider to jump through your data. The canvas re-renders each row's label in real time. This is the single best way to catch a token typo or an unexpected long product name that overflows your label.
If a row has a value you want to fix without going back to Google Sheets, click Edit row in the navigator. A popover opens with one input per column. Typing a new value re-renders the canvas immediately. Your edit stays on that row, so you can navigate away and back without losing it.
Step 6, print every row
The Print button is now "Print N rows"
When the navigator is showing, mylabelmaker reassigns the artboard's Print button: clicking it prints one substituted label for every row in your sheet. There's no per-label count modal — the row count is the count.
Hit Print. The progress bar updates as each label goes out. The printer status line surfaces "head open" or "out of paper" instantly if anything goes wrong, so you're not staring at a queue wondering what happened.
Recap
- Open app.mylabelmaker.com, pick your label size.
- Design your base label, replacing dynamic parts with
{{column_name}}tokens. - In Google Sheets: File → Share → Publish to the web → CSV, copy the URL.
- In mylabelmaker, click Variables, switch to the Google Sheet tab, paste the URL.
- Step through rows in the navigator to verify.
- Hit Print, the artboard's Print button is now "Print N rows".
Ready to try it?
The whole workflow is free. No signup, no install on the editor side. Just open the app, paste your sheet, hit Print.
Open mylabelmaker