What is a bulk ID card generator from Excel?
A bulk ID card generator from Excel is a tool that reads a spreadsheet and produces one finished card per row, using a single template. Instead of typing 300 names into a design file, you prepare the data once and let the generator lay out every card.
In CardDeck, the template comes from the card designer and the data comes from your sheet. Each column feeds a field on the card: name, job title, department, class, roll number, employee number, expiry date or photo. The generator then adds a unique QR code and, if your template has one, a barcode for every record.
What you can generate in one job
- Staff IDs with photo, department and QR verification for employee ID cards
- Student IDs with class, section, roll and academic year
- Event badges with a role band and check-in QR code
- Membership cards with tier, member number and expiry date
- Digital business cards for a whole team
- Code-only batches: QR codes or barcodes without a card around them
Why it matters
Manual layout is where errors creep in: a misspelled surname, a photo on the wrong card, a duplicate number. A batch generator removes the copy-and-paste step, checks the data before output and lets you regenerate a single card later without redoing the whole run.
How do I prepare an Excel or CSV file for bulk ID cards?
Prepare your file with one row per card and one column per field, with clear headers in the first row. That single rule prevents most import problems.
Spreadsheet checklist
- Put headers in row 1, such as full_name, title, department, employee_id, photo, valid_until.
- Keep one header row only. Delete title rows, notes and blank rows above or between records.
- Remove merged cells, hidden columns you don't need and formulas you don't want exported; paste them as values.
- Make the ID column unique. CardDeck uses it to match photos and to update cards when you re-import.
- Keep one sheet of data. Move lookups and notes to another file.
Save it in the right format
Upload XLSX as it is, or save as CSV UTF-8 (Comma delimited) from Excel. UTF-8 is the encoding that keeps names such as Tomás, Zoë, Søren or names in Devanagari, Arabic and Chinese scripts intact. A plain or "ANSI" CSV can turn accented letters into question marks.
Common Excel traps
- Leading zeros: Excel drops the zero in 00428. Format ID columns as Text before typing or pasting.
- Long numbers: Excel shows 12-digit and longer values, such as EAN-13 numbers, in scientific notation and drops digits beyond 15. Store them as Text.
- Dates: pick one format for expiry and validity columns, such as 2027-08-31 or 08/2027, and use it in every row.
- Stray spaces: trailing spaces cause "duplicate" or "no photo" flags. Use TRIM before you export.
If you are new to this, the step-by-step guide on making ID cards from Excel walks through a sample sheet.
Which columns should my ID card spreadsheet include?
Include only the fields that appear on the card or that you need to generate it. Extra columns are harmless, but fewer columns mean fewer things to check.
Typical columns by card type
- Employee ID: full_name, job_title, department, employee_id, photo, location, valid_until, emergency_contact (back of card)
- Student ID: student_name, class, section, roll_no, admission_no, academic_year, photo, house
- Event badge: first_name, last_name, company, ticket_type, role, badge_id
- Membership card: member_name, member_no, tier, expires_on
- Business card: name, title, email, phone, booking_link, territory
The ID column does three jobs
Your unique ID, such as an employee number, admission number or registration ID, is used to name photo files, to encode the QR code or barcode, and to update the right card when you re-import. Pick a value that never changes for that person. Email addresses change; employee numbers usually don't.
Keep values card-sized
A CR80 card is 85.6 × 54 mm, so a 60-character job title will not fit at a readable size. The validator flags values that exceed the space in your template, but it is faster to agree on short forms, such as "Eng." or "Ops", before you export. For student cards, decide whether to show "Class 9 · Section B · Roll 24" on one line or split across fields.
Ready-made layouts in the ID card templates already have these fields in place, so you can map straight to them.
How do I add photos to cards in bulk?
Name each photo after the row's ID and upload the photos as a ZIP. CardDeck matches each file to its row by filename, crops it to the template's photo frame and flags any row without a match.
Photo naming that matches every time
- Add a photo column to your sheet, or rely on the ID column alone.
- Name files exactly as the ID: NWL-0428.jpg, STU-2026-0193.png.
- Keep the same case and no extra spaces. "nwl-0428 .jpg" will not match "NWL-0428".
- Put all files in one folder, zip the folder and upload it with the sheet.
If your HR or student system exports photo links rather than files, download the images into one folder first and rename them by ID. A filename match is the most reliable method because it doesn't depend on a link still being reachable at generation time.
Photo quality guidelines
- Front-facing, head and shoulders, plain light background
- JPG or PNG, at least 600 pixels on the short side for sharp printing
- Similar framing across the batch so faces appear the same size
- No filters, sunglasses or group shots
When photos are missing
The batch preview shows "No photo" on affected rows, like Tomás Ruiz in the example above. You can upload the missing image for that one row, generate the rest now and add the late cards later, or let people upload their own photo through their digital card. Nothing is printed until you choose to export.
How does column mapping and validation work?
Column mapping links each header in your file to a field on the template. CardDeck suggests matches from your header names, you confirm or change them, and the validator then checks every row before output.
Mapping
The mapping screen lists your columns on one side and template fields on the other. "employee_id" maps to Employee number, "dept" to Department, and so on. Mark which fields are required. Save the mapping with a name, such as "HR export – Workday" or "SIS export – Term 1", and the next import of the same layout maps itself.
Columns you don't map are ignored, so you can upload a full HR or SIS export without trimming it first. If first and last names are in separate columns, either map them to separate first-name and last-name fields on the template or join them in the sheet before upload.
What the validator flags
- Duplicate ID: two rows share the same ID, like Hannah Cole in the example
- No photo: no image matched the row's filename
- Empty required field: a required column is blank
- Too long: the value won't fit the field at the template's font size
- Bad format: a date, number or barcode value that doesn't match the expected pattern, such as an EAN-13 value that isn't 12 or 13 digits
Fixing flagged rows
Edit a value in the preview for a quick fix, or correct the source sheet and re-upload if many rows share the same problem. Fixing at the source keeps your HR or student system and your cards in agreement.
How do I export a print-ready PDF on CR80 sheets?
Choose a print output, pick your printer type and download a PDF. For card printers you get one CR80 card per page with bleed; for office or print-shop printing you get cards imposed on A4 or Letter sheets with crop marks.
Output options
- CR80 PDF for card printers: each card at 85.6 × 54 mm, portrait or landscape, front and back as consecutive pages for duplex printing.
- Imposed sheets: several cards per A4 or Letter page for printing on pre-perforated card stock or for a print shop to trim.
- Label and code sheets: QR codes or barcodes on common A4 and Letter label layouts, or a custom grid.
- ZIP of individual files: one PNG or SVG per card or code, named by ID.
- Digital issue: each person receives a link to their card and its QR code.
Print checklist
- Generate the batch, then print five sample cards first.
- Check spelling, photo alignment, barcode readability and the back side's orientation.
- Scan the QR code and barcode on a printed sample with the phone or reader you will use.
- Print the remaining batch in sorted order, such as by department or class, to speed up handout.
Your card printer handles PVC stock and any RFID or magnetic encoding; CardDeck supplies the artwork. For details on specific card types, see the student ID card maker and event badge maker pages.
How many rows can I generate per job?
Row limits are set per job by plan: Free 25 rows, Pro 500, Team 2,000 and Business 25,000. A job is one upload and generate run, so larger lists can be split across several jobs.
Which plan fits your list
- Free (25 rows): try the workflow with a test sheet or a very small team.
- Pro (500 rows): personal ID cards and badges, small code batches and test runs for larger projects.
- Team (2,000 rows): employee IDs and team business cards for growing companies. See team business cards.
- Business (25,000 rows): whole-school student IDs, large conferences, membership bases and multi-office onboarding.
Card types also depend on the plan. Employee IDs are on Team and Business; student IDs, event badges and membership cards are on Business. Static QR codes and barcodes are unlimited on every plan, so code-only batches never run out.
Working with large lists
For a 6,000-student school on Business, one job is enough. On Team, a 4,500-person list would run as three jobs, for example by department or site. Use the same saved mapping for each so the output stays consistent, and keep the ID column unique across all parts.
Re-imports count the same way
Updating 40 changed rows is a 40-row job. Export only the rows that changed, or filter your sheet before uploading, to keep re-imports quick.
Can I generate only QR codes or barcodes in bulk?
Yes. Choose a code-only output and every row becomes a QR code or barcode file, without a card around it. This is useful for asset tags, product labels, tickets, shelf codes and table codes.
QR codes from a sheet
Put one URL or value per row, optionally with a label column for the filename. You get a ZIP of PNG and SVG files or a PDF label sheet. For marketing campaigns where links may change, pair this with dynamic codes, as covered on the bulk QR code generator page.
Barcodes from a sheet
Pick the format per job:
- Code 128 for employee numbers, asset IDs, tickets and shipping references
- EAN-13 for retail products, with the check digit calculated for you
- UPC-A for products sold in the US and Canada
For retail formats, the numbers must come from your GS1 allocation. CardDeck draws the barcode; it doesn't issue numbers. The bulk barcode generator page covers label sizes and scanner testing.
Codes inside cards
On card batches, the same row data can drive a QR code and a barcode on the same card: a QR code that opens the verification page, and a Code 128 barcode with the employee or member number for existing door, library or point-of-sale readers.
Design tool by hand vs CardDeck batch generator
| Without CardDeck | With CardDeck | |
|---|---|---|
| 300 ID cards | Hours of copy and paste in a design tool | Minutes from one spreadsheet |
| Errors | Found after printing | Flagged before export |
| Photos | Placed one by one | Matched by filename from a ZIP |
| QR codes and barcodes | Made separately and pasted in | Generated per row automatically |
| Updates | Redo the layout | Re-import changed rows by ID |
| Lost card | Reopen the file and reprint a sheet | Regenerate one card |