Why Google Sheets Add-ons Usually Disappoint
The instinct to stay inside Google Sheets makes sense — your data is already there. But the available options for generating barcodes in Sheets all come with real trade-offs.
Paid add-ons with limited output
Add-ons such as "Barcode Generator" by Awesome Table embed barcode images directly into spreadsheet cells. That sounds convenient until you try to print them as labels. Cells are not label templates. You get barcodes sized to fit your column width, with no control over quiet zones, DPI, or label dimensions. Most of these add-ons also charge a monthly fee after the free tier runs out — for functionality that a dedicated tool gives you for free.
Apps Script requires programming knowledge
Rolling your own Apps Script barcode solution means calling an external barcode API, handling authentication, staying within rate limits, and maintaining the script every time the API changes. For a small business owner who just needs labels for 200 SKUs, this is not a reasonable trade-off of time and effort.
Google Charts API is deprecated
The Google Charts API endpoint (https://chart.googleapis.com/chart?cht=qr&...) used to be a quick way to embed barcodes via an IMAGE() formula in Sheets. Google has officially deprecated this service. Images generated this way can break without notice, and the output quality was never suitable for scanning at scale.
The conclusion: Google Sheets is an excellent place to organize and manage your barcode data. It is not a good place to generate print-ready barcodes. Use Sheets for data, then export and generate elsewhere.
The CSV Export Method (Recommended)
This is the workflow that takes the least time and produces the most reliable output. No add-ons, no API keys, no code.
Organize your barcode values in a single column
In your Google Sheet, make sure the column that contains your SKUs or barcode numbers contains plain values only — no formulas that look up from other sheets, and no merged cells. Each row should hold exactly one barcode value.
Export as CSV
Go to File → Download → Comma-separated values (.csv, current sheet). The file saves to your Downloads folder immediately — no confirmation dialogs.
Upload the CSV to Bulk Barcode Generator
Open bulkbarcodegenerator.pro, click "Upload CSV or Excel," and select the file you just downloaded. The tool reads your columns and asks you to identify which one holds the barcode values.
Select your barcode format
Choose from Code 128, EAN-13, UPC-A, Code 39, QR Code, or Data Matrix. If you are unsure which to use, the next section covers the most common use cases.
Download your labels
Click Generate. Download as a print-ready PDF (one barcode per label, properly sized) or as a ZIP of individual PNG files at 300 DPI. Your data never leaves your browser.
How to Prepare Your Google Sheets Data
A few formatting choices in Sheets can save you trouble during export. Getting these right before you download the CSV means your barcodes will be accurate on the first attempt.
Set the barcode column to Plain text format
This is the single most important step. By default, Google Sheets treats columns as "Automatic" format, which means it will interpret a value like 0123456789012 as the number 123456789012 — stripping the leading zero. For EAN-13 and UPC-A barcodes, that leading zero is part of the valid number and its loss makes the barcode invalid.
To fix this: select the entire column that holds your barcode values, then go to Format → Number → Plain text. Any values you enter or paste after this change will be stored exactly as typed, leading zeros included.
One column, one data type
Keep your barcode values in their own dedicated column. Do not mix product names and barcode numbers in the same cell. A clean layout looks like this:
When exporting, you can either export the full sheet and select column C in the generator, or copy just column C to a new sheet and export that alone.
Remove blank rows
The barcode generator creates one barcode per row. A blank row in your CSV produces a blank barcode in the output. Scan your data for empty rows before downloading and delete them.
Which Barcode Format to Choose After Export
Once your CSV is ready, the format you select depends on what your barcode values represent and where the finished labels will be used.
| Use Case | Google Sheets Column Contains | Format to Use |
|---|---|---|
| Internal SKU / inventory | Your own SKU codes (e.g. JACKET-BLK-M) | Code 128 |
| Amazon FNSKU labels | FNSKU codes from Seller Central | Code 128 |
| Retail shelves (US) | GS1-registered UPC numbers (12 digits) | UPC-A |
| International retail | GS1-registered EAN numbers (13 digits) | EAN-13 |
| Links to product pages | Product URLs | QR Code |
| Warehouse locations | Location codes (e.g. A-01-03) | Code 39 |
When in doubt, Code 128 is the most versatile choice for internal use. It handles the full ASCII character set, produces compact barcodes, and is readable by virtually every scanner on the market.
Printing the Output as Labels
Once you have downloaded your PDF or ZIP from the generator, there are a few common paths to get physical labels.
PDF to Avery label sheets
Open the downloaded PDF and print at Actual Size (not "Fit to page" — scaling distorts barcode proportions). If you are using Avery 5160 or 5163 sheets, the layout from the generator is already sized to match. Load your label paper into the printer tray, confirm the print orientation matches, and print.
PNG files for designers or Canva
Unzip the downloaded archive to get individual PNG files, one per barcode. Drop these into Adobe Illustrator, Affinity Designer, or Canva to arrange them on a custom label template. This approach works well when your labels need a logo, product photo, or specific brand styling alongside the barcode.
Thermal label printers
For Rollo, Zebra, or Dymo thermal printers, download the PDF and select the label size that matches your roll (common sizes are 4×6 inch shipping labels or 2×1 inch item labels). Open in your PDF viewer, choose the correct paper size, and print directly. No ink cartridges required.
Can I Generate Barcodes Inside Google Sheets?
Many people want to know whether it is possible to generate barcode images without ever leaving Google Sheets. The short answer is: technically yes, but practically no — the two main approaches both have serious limitations.
Method 1: IMAGE() formula with a third-party barcode API
Some barcode API providers let you embed a formula like this in Sheets:
This loads a barcode image from an external service into your cell. The problems: you are dependent on a third-party API that can change its pricing, go offline, or impose rate limits at any time. The images load slowly in Sheets and at low resolution. You have no control over label dimensions. And when you print, you are printing a screenshot of a spreadsheet, not a proper label layout.
Method 2: Apps Script calling a barcode API
A more robust version of the same idea: write Apps Script code that calls a barcode API and inserts the returned image into each cell. This requires programming knowledge, an API key, and ongoing maintenance. For most small business owners, the setup time outweighs any benefit, especially when the CSV export method takes two minutes and produces better output.
The practical recommendation: treat Google Sheets as your data management layer and use a dedicated tool for barcode generation. The separation keeps both tasks simple.
Have your SKU list in Google Sheets? Go to File → Download → CSV, then upload to Bulk Barcode Generator. Select your format, download print-ready labels. Free, no add-ons required, no signup needed.
Generate Barcodes from Google Sheets Free →