← Blog · Bulk · 5 min read
From spreadsheet to printed labels, without a design tool
If your products already live in a spreadsheet, you are most of the way to a printed sheet of labels. The work is in the columns, not the design.
Start from the template, not from your own file
Every content type needs different columns — a WiFi code needs an SSID and a password, a product link needs a URL. Rather than guess, download the template for the type you want. It arrives with the right headers, a worked example row, and comments explaining each column.
Delete the example rows, paste your own data under the headers, and save as CSV. Excel, Google Sheets and Numbers all export CSV; any of them is fine.
The three columns that matter
The content column is what the code will contain — a URL, a product number, a WiFi password. It is the only required one.
The label column is text printed under or above the code. On a shelf label this is usually the product name, so a human can read what the code is for without scanning it.
The filename column names the file inside the ZIP. Leave it blank and files are numbered; fill it in and you get A-1001.svg instead of code-7.svg, which matters when you are matching four hundred labels to four hundred products.
Fix the errors before generating, not after
Upload the CSV and every row is checked before anything is made. Bad check digits, empty required fields, codes too long to encode — each one is reported with its row number and the column at fault.
This is deliberate. Generating four hundred labels and then discovering row 214 was wrong wastes a print run; catching it in the spreadsheet costs a minute.
SVG or PNG
SVG is the default and usually the right answer. It is a vector, so it prints crisply at any size, and it stays a few kilobytes even with gradients — a gradient PNG of the same code can be twenty times larger.
Choose PNG only if whatever you are importing into cannot read SVG. Some older label software cannot.
Laying them out on paper
A ZIP of image files still leaves you arranging them. The print-sheet mode does that step: it takes the rows you already loaded and lays them on A4 or US Letter at a code size you set in millimetres, with optional captions and cut marks.
Because the size is set in millimetres rather than pixels, what comes out of the printer is the size you asked for. That is the step where labels usually go wrong — dragged smaller in a word processor until they stop scanning.
There is no PDF export and there does not need to be: print from the browser and choose "Save as PDF" in the print dialog.
Fifty rows at a time
The row limit is fifty, and the reason is memory. The ZIP is assembled in your browser, because nothing is uploaded to us — that is the whole design. Five hundred gradient PNGs would be several hundred megabytes held in a phone tab, which is how tabs crash.
For a larger run, split the spreadsheet. Fifty is also about two A4 sheets at a typical label size, which is a natural batch anyway.
One logo for the batch
You can put one logo in the centre of every code in the run. Per-row logos are not supported, and that is deliberate: it would mean fetching an image per row from somewhere on the internet, and nothing in these tools makes a network request while you work.
If different products genuinely need different logos, run them as separate batches.
Static code — nothing expires, no account, no sign-up.
Open the bulk generator →