Start with a clean spreadsheet
One row per QR. Required columns: a stable unique identifier (asset ID, seat number, SKU), the QR payload (URL, text, etc.), and a human-readable label that gets printed next to the code. Bad spreadsheets are the source of 90% of batch-QR pain — sort by identifier early, dedupe early.