Making one ID card by hand is easy. Making three hundred is not, unless you let a spreadsheet do the repetitive work. With StencilID, you design a card once, point it at a CSV, and generate one personalized, print-ready card per row. The result lands in your browser as a ZIP of images plus a single print-ready PDF with cut lines. This guide walks through the whole flow, from structuring your spreadsheet to reusing the template next time.
Why a spreadsheet is the right tool
A spreadsheet is just a grid of people and their attributes, exactly the data an ID card needs. Each row is a person, each column is a field on the card. Once your data is clean, bulk generation is mostly mechanical: map columns to fields, preview, and click generate. The work is all in the preparation.
Step 1: Prepare your spreadsheet
Start in Google Sheets, Excel, or any tool that exports CSV. Put one person per row and give every column a clear, single-word-ish header. Keep the data flat, no merged cells, no header banners above the real header row, no totals at the bottom.
Here is a well-structured example:
| Name | Role | ID | Department | Photo | QR |
|---|---|---|---|---|---|
| Aisha Khan | Teacher | EMP-001 | Mathematics | akhan.jpg | EMP-001 |
| David Owusu | Student | STU-204 | Year 10 | dowusu.jpg | STU-204 |
| Lena Brandt | Staff | EMP-118 | Reception | lbrandt.jpg | https://acme.co |
Notice each column holds one kind of value. The QR column can be anything you want encoded, an ID number, a URL, or a membership code. The same column can drive a barcode instead if your template uses one.
Handling photos
You do not need to host your photos anywhere. Put each person’s photo filename (for example akhan.jpg) in a column, then upload the photo files when you generate. StencilID matches each photo to the right row by filename, no public links to create. If your photos already live online with direct public links, you can put an image URL in the column instead; both work.
To get clean results:
- Keep the filenames in the column matching the files you upload exactly (or use direct public image URLs if your photos are already online).
- Crop photos to a consistent aspect ratio, portrait crops suit ID cards best.
- Use reasonably high-resolution images; cards print at 300 DPI, so small thumbnails will look soft.
- Aim for a plain, uniform background where you can.
Step 2: Export to CSV
When the sheet looks right, export it. In Google Sheets choose File, Download, Comma-separated values. In Excel choose Save As and pick CSV UTF-8. UTF-8 matters, it keeps accented names and non-Latin characters intact.
CSV best practices
- Consistent headers: one header row, no duplicates, no trailing blank columns.
- UTF-8 encoding: preserves accents and international characters.
- Matching photo filenames: the names in the column match the files you upload (or valid public image URLs if you link instead).
- No blank required fields: every row needs the values your card actually shows (a missing name leaves a blank card).
- Trim stray spaces: leading or trailing spaces can throw off matching and layout.
- Stable IDs: keep ID numbers unique so QR and barcode values do not collide.
Step 3: Map columns to card fields
Open the browser editor and design your card once, or start from a ready-made template. Place text fields for the name, role, ID, and department, a photo frame, and a QR or barcode element. CR80 is the standard credit-card size and is the default here.
Then upload your CSV. StencilID reads the headers and asks you to connect each card element to a column. You point the name text to Name, the photo frame to Photo, the code element to QR, and so on. This mapping is the heart of bulk generation: it tells the system which spreadsheet column fills which spot on every card.
Step 4: Preview before you commit
Before generating the full batch, preview a few rows. Check that names fit inside their text boxes, photos sit correctly in the frame, and QR codes or barcodes scan. If a long name overflows or a photo fails to load, fix it in the spreadsheet or adjust the field, then preview again. Catching one problem now saves you from regenerating three hundred cards later.
Step 5: Generate the ZIP and print-ready PDF
When the preview looks good, generate. StencilID produces one personalized card per row and delivers two things:
- A ZIP of individual card images at 300 DPI, handy for digital badges, profile systems, or sharing single cards.
- A print-ready PDF with cut lines: laid out for printing and trimming, so a print shop or office printer can produce physical cards straight away.
Step 6: Reuse the template next time
Your card design is saved as a template. Next term, next hire wave, or next event, you do not start over, you swap in a fresh CSV with the same column headers and generate again. Keeping your spreadsheet headers consistent from batch to batch is what makes reruns nearly instant.
End-to-end workflow
- Build a flat spreadsheet, one person per row, clear column headers.
- Add a photo column with each filename (you upload the photo files at generation time), or use public image URLs.
- Export as CSV using UTF-8 encoding.
- Design or pick a card template in the browser editor.
- Upload the CSV and map each column to a card field.
- Preview a few rows and fix any overflow or missing photos.
- Generate to get the ZIP of images and the print-ready PDF.
- Save the template and reuse it with a new CSV next time.
This same flow covers most use cases. Schools batch student and staff cards with the school ID card maker, companies onboard new hires with the employee ID card maker, clubs and gyms issue cards with the membership card maker, and events print attendee passes with the conference badge maker.
You can build a template and try a small batch for free, bulk generation from a spreadsheet is what turns hours of manual design into a few minutes of mapping and one click. Start generating your cards and see your first batch come out print-ready.