A WHOLE SPREADSHEET OF LABELS

# Print thousands of barcode labels from a CSV automatically

Updated 14 October 2026

Printing barcode labels from a CSV means each row of a spreadsheet becomes one label: its columns fill the label’s text and barcode, so a list of 2,000 bin locations becomes 2,000 labels without typing any of them. LabelRules checks every row, keeps each code exactly as written, chooses each label’s layout by your rules and prints the whole list unattended through SmartFACT PrintStation, in chunks, with a record of every label.

[Discuss your labels](https://labels.smartfact.ai/request-access?from=bulk)

Bin, rack and shelf locations, or product, carton and batch labels. One 100 × 150 mm label per copy, on a label printer.

[![LabelRules station showing stores location A-01-01-004, found by scanning its printed bin label, with its area, rack, bay, shelf and bin](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/find-location--scan-location.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/find-location--scan-location-full.webp) 

A bin label printed from the stores spreadsheet, scanned on a handheld or scan station, finds its location exactly as written.

FROM SPREADSHEET TO PRINTER

## How do you print barcode labels from a CSV?

A stores team has a spreadsheet of 2,000 bin locations. Printing them from a PDF means standing at the printer for the whole run. With LabelRules the list is checked once and prints on its own.

- 01 
  
  ### Test the printer

  PrintStation prints a test label, and LabelRules records that it scanned and measured true before production labels print.
 
- 02 
  
  ### Save the sheet as CSV

  One location per row, with its code, area, rack, bay, shelf, bin and description. Keep code columns as text.
 
- 03 
  
  ### Import it as a label list

  A supervisor imports the file and chooses to check every row as a label. The whole file is checked before anything is saved.
 
- 04 
  
  ### Check every label

  Each row is prepared as its own label: the rules choose its layout, and the label is rendered and checked.
 
- 05 
  
  ### Accept the list once

  The supervisor reviews the result, confirms any held rows will not print, and accepts the whole list.
 
- 06 
  
  ### Print unattended

  The labels go to a PrintStation destination in chunks, where its agent prints them with nobody at the screen.

[![LabelRules label list in the office browser: the stores location spreadsheet checked as labels, one row held because a value does not fit on its label layout, and Accept the list, ready to send 52 labels to Assembly labels in chunks of up to 50, above the list’s rows](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--location-list.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--location-list-full.webp) 

Every row of the stores team’s spreadsheet checked as its own label, before anything prints.

BEFORE A LARGE RUN

## Start with a test label

Print one label before running thousands. LabelRules prints its qualification label through PrintStation, and a supervisor scans it, measures it and confirms one label came out the right way round, on the right stock. Until then the station prints no production labels, and a new printer or destination needs a new test label.

[![LabelRules printer setup in the office browser, marked Qualified: the station prints through PrintStation, and LabelRules’ label is qualified on the Training Zebra printer](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/printing-boundary--printer-setup.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/printing-boundary--printer-setup-full.webp) 

The printer is qualified with a test label before any production label prints.

## Keep every code exactly as written

Each value is kept exactly as it is in the file: leading zeros, capital letters and spaces. A bin code such as `A-01-02-007` prints as `A-01-02-007`, and its barcode reads the same. Nothing is rounded, trimmed or turned into a number.

In Excel, set code columns to Text before saving the CSV, so the sheet keeps its zeros too.

[![The first checked labels of the list: rack location labels for A-01, A-02 and A-03, two of each, and a bin location label for A-01-01-001, each with its code as a Code 128 barcode](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-labels.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-labels-full.webp) 

Rack and bin layouts, chosen by the rules, with every code exactly as written.

## Let the rules choose each label’s layout

Every row gets the layout its rules choose. A rack upright, with no bin, gets the rack layout with a larger barcode; a bin gets the bin layout. The same list can ask for two labels where a rack is labelled on both faces.

Works-order files work the same way: each customer’s layout and codes, chosen by the rules you approve.

WHAT A LOCATION CARRIES

### Code, area, rack, bay, shelf and bin.

The location code is the label’s identity and its barcode. The other columns are optional; an empty cell stays empty, never a guess.

The file’s headings are `location_code`, `area`, `rack`, `bay`, `shelf`, `bin`, `description` and `labels`, the copies of that label, from 1 to 10.

## Check every label before anything prints

A file with a missing heading, a repeated location or a value that is too long does not import, and the importer names the row to fix. A row that imports but cannot print as checked, such as a code too long for its layout, is held with its reason. The rest of the list is ready to print.

[![The list’s held rows: one row will not print from this list, because a value does not fit on its label layout, with how to fix it](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-held.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-held-full.webp) 

A row that cannot print as checked is held, with the reason.

## Accept the whole list once

The supervisor who started the list accepts it, with a second sign-in factor, after confirming that held rows will not print. Each ready row becomes its own recorded run, with the label it was checked with.

[![Accept the list: the held row acknowledged, and the button to accept and print 52 labels](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-acknowledge.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-acknowledge-full.webp) 

The whole list is accepted once, with the held row acknowledged.

## Print unattended, in chunks

The labels go to a named PrintStation destination in chunks of up to 50, in file order. Each chunk goes when the destination’s agent has sent the one before to the printer, so the printer is never buried in work it cannot finish.

If a label’s output is uncertain or a send fails, the list pauses. A supervisor checks the printer, settles the label in PrintStation and resumes the list.

[![The accepted list, complete: 50 rows in the file, 49 ready as 52 labels and one held, accepted with the held row acknowledged, and all 52 labels sent through PrintStation to the printer](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-progress.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/label-list--list-progress-full.webp) 

Accepted once, the list goes to the PrintStation destination in chunks, unattended, until every label has gone to the printer.

## Every chunk and every label on record

The list keeps each chunk, with its rows, its labels and when it was sent, and each row’s state. Every row is an ordinary run in Print history, with its copies and PrintStation’s record of each one. A damaged label is replaced with an exact reprint from its run, with a reason.

[![A label list row’s run in LabelRules: rack location G-01, two labels sent with chunk 1, with a link back to its row in the list and PrintStation’s record of both copies](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/list-history--list-row-run.webp)](https://labels.smartfact.ai/_marketing/screens/labels/bulk-print-barcode-labels-from-csv/list-history--list-row-run-full.webp) 

Each row is a run in Print history, with exact reprints from it.

## A few cards, or thousands?

For a handful of bin cards, SmartFACT’s free CardBench makes them in the browser from a list you paste, ready to print. For thousands of labels from a file, checked by rules and printed unattended, use LabelRules.

FREE TOOL

### CardBench

Bin and rack cards in your browser, with no account. [cardbench.smartfact.ai](https://cardbench.smartfact.ai/)

KNOW THE BOUNDARIES

## What LabelRules does not do

- Read .xlsx workbooks: save the sheet as CSV first.

- Map your own column headings: a location file uses the documented headings, and a works-order file the manufacturing profile.

- Print sheet labels on A4 or Letter: each copy is one 100 × 150 mm label on a label printer.

- Print more than 10,000 labels in one list: split the file into several lists.

A FEW PRACTICAL QUESTIONS

## Before your first list.

**How can I print barcode labels from Excel?**

Save the sheet as a UTF-8 CSV with one label per row and its code columns as text, then import it as a label list. LabelRules checks every row as a label and prints the list through SmartFACT PrintStation.

**How do I keep leading zeros?**

Set the code columns to Text in Excel before saving the CSV. LabelRules keeps every value exactly as it is in the file, so `007` stays `007` on the label and in its barcode.

**How do I print many labels on a Zebra printer?**

Route the station to a PrintStation destination for the printer. An accepted list goes to it in chunks, and its agent prints them in file order, unattended.

**Why isn’t my printer printing all the labels?**

A printer that runs out of labels or jams stops part way through a run. LabelRules pauses the list when PrintStation reports a label’s output as uncertain or failed, and the list shows which chunk and which rows were sent, so the rest goes only when the printer is ready again.

**Can I print my own barcode labels?**

Yes: on a thermal label printer with 100 × 150 mm labels, through SmartFACT PrintStation. Test the printer with a qualification label first.

KEEP EXPLORING

## The next part of your workflow.

### [CSV to labels](https://labels.smartfact.ai/print-labels-from-csv)

To print barcode labels from Excel, save the sheet as CSV with codes kept as text, then import it. See how LabelRules prints each job's labels from its rows.

### [Reprints and history](https://labels.smartfact.ai/label-reprints-and-history)

An exact label reprint replaces one damaged copy with the same label, linked to its original output and a recorded reason. See LabelRules' print history.

### [Browser printing](https://labels.smartfact.ai/browser-label-printing)

Printing labels from a browser sends each label to a qualified label printer, with no print dialogue. See how LabelRules prints through SmartFACT PrintStation.

LET’S START WITH YOUR WORKFLOW

## Bring one label. We start there.

Tell us about your data, customer requirements and printer. We show you LabelRules with sample data and, if it fits, set up your first label workflow with your team as an invited trial.

 [Discuss your labels](https://labels.smartfact.ai/request-access?from=bulk)

THE SMARTFACT SUITE

## Useful on their own. Better around the same floor.

Automate factory decisions with rules you describe in plain English. Explore focused SmartFACT services, plus free tools for everyday checks.

![](https://labels.smartfact.ai/_marketing/suite/scannerbench.svg)

 Free tool

### ScannerBench

See the text and key events your keyboard scanner sends. Compare them with the value you expected.

 [Test a scanner](https://scannerbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/printbench.svg)

 Free tool

### PrintBench

Print a known PDF, measure its reference marks and compare scans from the printed codes.

 [Check a print](https://printbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/factorycards.svg)

 Free tool

### CardBench

Create 100 × 50 mm bin and rack cards with Code 128 or QR, from one record or a CSV.

 [Make bin cards](https://cardbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/countbench.svg)

 Free tool

### CountBench

Count stock by location with a barcode scanner, compare it with a stock file and export the results. No account needed.

 [Start a free count](https://countbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/barcodebench.svg)

 Free tool

### BarcodeBench

See exactly what a scanned barcode contains, with hidden characters shown and GS1 fields, check digits and dates explained. No account needed.

 [Inspect a barcode](https://barcodebench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/matchbench.svg)

 Free tool

### MatchBench

Scan a reference and each label, see an exact match or the first difference, and download the results. No account needed.

 [Start a free comparison](https://matchbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/tagbench.svg)

 Free tool

### TagBench

Scan an item or location, note what needs attention, print a review tag and keep a review list. No account needed.

 [Make a free tag](https://tagbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/findbench.svg)

 Free tool

### FindBench

Load your own parts and locations CSV, scan a code and see every location it lists. No account needed.

 [Start a free lookup](https://findbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/manifestbench.svg)

 Free tool

### ManifestBench

Check cartons, pallets or serial numbers against a list with a phone or scanner and see what is missing. No account needed.

 [Start a free check](https://manifestbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/feedbench.svg)

 Free tool

### FeedBench

Check CSV and JSON files exactly as written, preview a column mapping and compare two versions by key. No account needed.

 [Check a file free](https://feedbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/cyclebench.svg)

 Free tool

### CycleBench

Time work cycles and changeovers on a phone, record interruptions with reasons and download the results. No account needed.

 [Start a free study](https://cyclebench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/offcutbench.svg)

 Free tool

### OffcutBench

Label the offcuts on your rack, find a piece long enough before cutting new stock and record what you used. No account needed.

 [Track offcuts free](https://offcutbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/tracebench.svg)

 Free tool

### TraceBench

Load one or two CSV exports and follow a lot or serial forwards or backwards, with the row behind every link. No account needed.

 [Start a free trace](https://tracebench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/reclaimbench.svg)

 Free tool

### ReclaimBench

Record the parts recovered from each return, label them with a QR code, check them and record the unit each one goes into. No account needed.

 [Track recovered parts free](https://reclaimbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/labels.svg)

 Invited trial

### LabelRules

Describe label rules in plain English. Automatically select layouts, resolve customer codes and check each job before printing.

 You’re exploring this service

![](https://labels.smartfact.ai/_marketing/suite/kitproof.svg)

 Early access

### KitProof

Turn plain English component rules into automatic kit checklists, then check scans against the expected parts and quantities.

 [Explore KitProof](https://kitproof.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/worksteps.svg)

 Early access

### WorkSteps

Turn plain English rules into automatic step selection for each unit, with required evidence and a record of completed work.

 [Explore WorkSteps](https://worksteps.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/factoryspec.svg)

 Early access

### FactorySpec

Apply approved product rules and calculations automatically to turn dimensions and options into manufacturing requirements.

 [Explore FactorySpec](https://factoryspec.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/configsheets.svg)

 Early access

### SmartFACT Data

Maintain reference tables with ConfigSheets or bring shop orders into SmartFACT through reviewed connectors. Check changes and deliver data to the products that use it.

 [Explore SmartFACT Data](https://data.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/orders.svg)

 Early access

### OrderRun

Turn plain English rules into automatic order checks and destination selection, with controlled production release.

 [Explore OrderRun](https://orders.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/parceloffice.svg)

 Early access

### ParcelOffice

Scan the work order and the parcel choice to book the courier and print the labels. Approved plain English rules recommend or choose the parcel.

 [Explore ParcelOffice](https://parceloffice.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/refillflow.svg)

 Early access

### RefillFlow

Scan an empty container to send the right refill request to stores. Approved plain English rules set the stores queue, priority, ticket printer and escalation.

 [Explore RefillFlow](https://refillflow.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/remnantrack.svg)

 Early access

### RemnantRack

Label each offcut, find a suitable length before cutting new stock and record what you used. Approved plain English rules decide what to keep and where it goes.

 [Explore RemnantRack](https://remnantrack.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/tooltrack.svg)

 Invited trial

### ToolCustody

Check a shared tool before handover, record who has it and keep damaged or overdue tools out of the next issue. Explore an invited trial for one factory crib.

 [Explore ToolCustody](https://toolcustody.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/stockflow.svg)

 Invited trial

### StoresFlow

Receive, put away, reserve and issue stores material with barcode checks, keeping held, reserved and available stock apart. Explore an invited trial for one stockroom.

 [Explore StoresFlow](https://storesflow.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/batchtrail.svg)

 Invited trial

### LotTrail

Follow a lot or serial number through the records your factory already keeps, with the source of each link and the gaps shown. Explore an invited trial with two declared sources.

 [Explore LotTrail](https://lottrail.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/checkstation.svg)

 Early access

### CheckStation

Scan an identified unit to get its approved final-inspection checks, then record exact readings with their result, holds and release history.

 [Explore CheckStation](https://checkstation.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/reclaimstation.svg)

 Invited trial

### ReclaimStation

Book returned units in, recover and label the usable parts, release them independently and record the unit each goes into. Explore an invited trial for one product family.

 [Explore ReclaimStation](https://reclaimstation.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/guidbench.svg)

 Free tool

### GuidBench

Generate GUIDs, UUID v4 and v7, ULIDs and Nano IDs, format and download batches, or inspect a UUID in your browser. No account needed.

 [Generate identifiers](https://guidbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/octetbench.svg)

 Free tool

### OctetBench

Inspect and edit text, hex, Base64 and binary bytes in your browser, reveal hidden characters and compare byte sequences. No account needed.

 [Inspect some bytes](https://octetbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/patternbench.svg)

 Free tool

### PatternBench

Test JavaScript regular expressions in your browser, inspect matches and captures, preview replacements and check expected cases. No account needed.

 [Test a pattern](https://patternbench.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/purchasing.svg)

 Invited trial

### SmartFACT Purchasing

Collect purchase requests, approve supplier orders and track what is still to arrive. Explore an invited trial for one site.

 [Explore Purchasing](https://purchasing.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/automation.svg)

 Invited trial

### SmartFACT Automation

Describe, test, approve and audit the automation rules of every SmartFACT product in one place. Included with each product’s paid plan, or on its own.

 [Explore Automation](https://automation.smartfact.ai/)

![](https://labels.smartfact.ai/_marketing/suite/help.svg)

 Help

### SmartFACT Help

Step-by-step guides and interactive demonstrations for the SmartFACT suite. Read the instructions, watch a task or practise with real product screens and sample data.

 [Open SmartFACT Help](https://help.smartfact.ai/)
