Mail Merge Labels from Google Sheets — No Word Required
You've got names and addresses in a Google Sheet. You want to print them as labels. The traditional way involves downloading data, opening Microsoft Word, navigating the mail merge wizard, and praying it works. There's a faster way.
Paste your Google Sheets URL → design your label → print. That's it. Free, in your browser, 60 seconds.
Why Mail Merge in Word Is Painful
The Word Mail Merge workflow:
- Export Google Sheet as CSV or Excel
- Open Microsoft Word ($150+/year)
- Mailings → Start Mail Merge → Labels
- Select Avery label size from dropdown
- Select Recipients → Use Existing List → find your file
- Insert Merge Fields one by one
- Format the layout (it always looks wrong)
- Preview Results → fix the formatting again
- Finish & Merge → Print
- Realise half the labels are misaligned 😤
10 steps. Requires Microsoft 365 subscription.
The OpenLabelMaker workflow:
- Open the editor, pick a label size
- Type
{{name}},{{address}} - Click Batch → paste your Google Sheets URL
4 steps. Free. No software download.
Step-by-Step: Google Sheets to Printed Labels
Make Your Google Sheet Viewable
Your Google Sheet needs to be accessible via URL. In your sheet:
- Click Share (top-right button)
- Under "General access", change to "Anyone with the link"
- Set role to "Viewer" (that's all that's needed)
- Copy the link
Privacy note: OpenLabelMaker fetches the data as CSV via Google's public export URL. The data goes directly from Google to your browser — it's never sent to our servers (we don't have servers). After printing, you can set the sheet back to private.
Open the Editor & Pick a Label Size
Go to openlabelmaker.com/editor. Popular choices for mail merge:
Design Your Label with {{Fields}}
Your Google Sheet column headers become your field names. If your sheet has columns name, street, city, zip — type them as placeholders:
Import from Google Sheets
Click the 📊 Batch button in the toolbar. Select the Google Sheets tab. Paste your sheet URL. Click Fetch.
Your data loads instantly. Column headers auto-match to the {{fields}} in your design. You'll see a preview with real data.
Multiple sheets? If your Google Sheets file has multiple tabs, OpenLabelMaker fetches the first sheet by default. To use a different tab, add gid=SHEET_ID to the URL (you can find this in the URL when you click on the tab).
Preview & Print
Click Export to see the full preview:
- • Sheet labels (Avery): paginated A4/Letter sheets with labels in grid positions
- • Printer labels (DYMO): one label per page
Download as PDF or print directly. For 200 addresses on Avery L7160 (21/sheet) = just 10 pages to print.
What People Use Google Sheets Mail Merge For
Wedding invitations
Guest list in Google Sheets → address labels for envelopes
Christmas cards
Family & friends contact sheet → holiday card labels
Small business shipping
Order list in Sheets → shipping labels with addresses
Office mailings
Client/vendor contact list → mailing labels
Product labels
Product catalogue in Sheets → barcode labels with names/prices
School labels
Student roster → name labels for supplies, folders, cubbies
FAQ
Does this work without Microsoft Word or Office?
Yes! That's the whole point. You don't need Word, Excel, or any Microsoft product. OpenLabelMaker is free, browser-based, and connects directly to your Google Sheet.
Does it work on Chromebook?
Yes. OpenLabelMaker runs in Chrome and Google Sheets is native to Chromebook. It's the ideal combo for Chromebook users who can't install desktop mail merge software.
Do I need a Google Sheets add-on?
No. OpenLabelMaker fetches your data via Google's public CSV export URL. No add-ons, no OAuth, no permissions to grant. Just set the sheet to "Anyone with the link" and paste the URL.
Can I add barcodes from Google Sheets data?
Absolutely. Add a barcode element to your label and set its value to {{column_name}}. Each label gets a unique barcode generated from your Sheets data.
My sheet has empty cells. What happens?
OpenLabelMaker handles empty values gracefully — the placeholder is replaced with nothing, and the text element collapses. If a row has an empty {{company}}, it won't show a blank line — the remaining text shifts up.