QR Guy
ブログ
ガイド••読了 16分

大量のQRコードを一括生成する方法:無料オンライン作成ガイド

スプレッドシートから大量のQRコードを高解像度ZIPファイルとして一括出力するための実践的プロダクションガイド。

QG
QR Guy Engineering Team✓
Batch Systems & Print Engineering
共有:
🌐
※ 以下の詳細な技術ガイド本文は英語の原典です。ジェネレーターやスキャナーツールはすべて日本語でご利用いただけます。

Whether you are managing retail warehouse inventory, printing personalized badges for a 5,000-attendee conference, rolling out serialized asset tags across municipal equipment, or launching individualized direct mail postcards, generating QR codes one at a time is an operational non-starter. You need bulk QR code generation: the ability to transform a spreadsheet of hundreds or thousands of data points into crisp, print-ready 2D matrix graphics in seconds.

However, anyone who has searched Google for "bulk QR code generator" quickly discovers that this simple utility has been cordoned off behind aggressive corporate paywalls. Commercial platforms routinely charge between $50 and $250 every month, cap free trial batches at an insulting 5 or 10 codes, water-mark downloads, or withhold print-ready vector SVG files behind custom "Enterprise Quotes."

The Hidden Security Hazards of Cloud Bulk Generators

Beyond the financial extortion, uploading spreadsheets to third-party commercial QR code SaaS platforms creates severe enterprise data security, compliance, and privacy liabilities:

PII & GDPR Exposure:

If you are generating employee vCards, membership IDs, or medical patient wristbands, uploading names, phone numbers, and emails to a random web server violates GDPR, CCPA, and HIPAA compliance mandates.

Proprietary Token Leakage:

Batch ticket generation often encodes cryptographic access tokens, secret discount vouchers, or internal SKU pricing. Storing these on third-party cloud databases exposes your enterprise to data breaches.

The Dynamic Expiration Ransom:

Many bulk generators convert all your URLs into their own proprietary redirect links. If you stop paying their monthly subscription, thousands of printed product packages or event tickets instantly stop working.

This guide reveals how to achieve 100% free, unlimited, permanent bulk QR code generation using open-source standards, browser-based sandboxing, spreadsheet formulas, commercial pre-press data merging, and lightweight local automation scripts.

Spreadsheet Architecture: How to Structure CSV & Excel Data for Batch Generation

Every successful batch generation run starts with clean, well-formatted tabular data. A single formatting error in row 412 can silently corrupt subsequent rows or trigger printing misalignments across thousands of physical items.

The Standard Two-Column Batch Schema

Regardless of whether you use a browser tool, InDesign, or a Python script, standard bulk QR generators expect a clean Comma-Separated Values (CSV) or Excel (.xlsx) file with at least two fundamental columns:

Column Header Data Type Purpose & Description Example Values
Filename / ID Alphanumeric String Determines the file name of the generated image (e.g. SKU-1001.svg). Must be unique per row!
Payload / Content URI, Text, vCard The actual data encoded into the physical matrix squares.
Label / Human-Readable String (Optional) Human-readable text printed below or above the QR code in packaging or variable data templates. Industrial Valve 1001, Sarah Connor (VIP)

4 Critical Spreadsheet Traps to Avoid

Trap 1: Excel Stripping Leading Zeros from Numeric SKUs

If your product codes or serial numbers begin with zero (e.g., UPC-A barcode number 012345678905), Microsoft Excel will automatically interpret the column as an integer and strip the leading zero, transforming your data into 12345678905. When scanned, the resulting QR code will fail point-of-sale lookup! Always format ID columns as Text before pasting numbers, or prefix cells with an apostrophe ('012345678905).

Trap 2: Unescaped Commas in URLs or Payload Strings

In standard CSV files, the comma is the column delimiter. If your payload string contains commas (common in vCard street addresses or complex tracking query parameters like ?cat=books,magazines), the CSV parser will split the string into a new column, shifting all subsequent fields and breaking the batch. Always wrap fields containing commas in quotation marks ("https://site.com?tags=tech,news").

Trap 3: Illegal Characters in Filename Fields

If you use employee names, product titles, or URLs as your output filename column, beware of illegal operating system filesystem characters (/ : * ? " < > |). An ID value such as Valve #4/A:Large will cause the batch export script or ZIP archiver to crash. Always sanitize filenames to alphanumeric characters, dashes, and underscores.

Trap 4: Character Encoding Mismatches (UTF-8 vs. Windows-1252)

If your dataset contains international characters, accents (e.g. é, ü, ñ), or Asian scripts (e.g. 漢字, 한글), saving your CSV under legacy Windows ANSI/ASCII encoding will corrupt characters into gibberish (Mojibake). Always export your CSV file with UTF-8 Character Encoding.

Method 1: 100% Free Client-Side Browser Bulk Generation (Zero Cloud Uploads)

The cleanest, most private way to generate hundreds of bulk QR codes without installing specialized software is using client-side in-browser WebAssembly and HTML5 Canvas engines. In this architecture, your computer's local CPU executes the matrix math inside your browser's memory sandbox—zero data is transmitted to an external server.

How In-Browser Batch Generation Works

  1. Local File Reading: You drag and drop your CSV file into the browser. The browser's native FileReader API parses the text locally into memory.
  2. Worker Thread Computation: A background Web Worker receives the data rows and compiles each QR code using compiled WebAssembly routines, preventing the browser tab from freezing or crashing.
  3. Client-Side ZIP Archiving: A client-side compression library (such as JSZip) bundles all generated vector SVG or high-res PNG files into a single .zip archive directly in your RAM.
  4. Instant Local Download: The browser triggers a local file download stream. You receive your archive of 500+ customized QR codes in under 10 seconds.

Sample CSV Template for Batch In-Browser Generation

Copy-Paste Template

Save this exact text into a file named batch_sample.csv to test your bulk generation workflow:

filename,url,label
PROD-001,https://qrguytool.com/link?sku=001,Product 001 - Blue Widget
PROD-002,https://qrguytool.com/link?sku=002,Product 002 - Red Widget
PROD-003,https://qrguytool.com/link?sku=003,Product 003 - Green Widget
PROD-004,https://qrguytool.com/link?sku=004,Product 004 - Yellow Widget
PROD-005,https://qrguytool.com/link?sku=005,Product 005 - Purple Widget

Method 2: Instant Batch Generation Directly in Google Sheets & Excel

If you already manage your inventory or attendee lists inside Google Sheets, you don't even need to leave your spreadsheet to preview hundreds of live, scannable QR codes. You can render real-time QR codes inside individual cells using native spreadsheet formulas.

The Google Sheets =IMAGE() Formula Method

Google Sheets features a built-in =IMAGE() function that can fetch and display any publicly accessible image URL directly inside a cell grid. By combining it with an open QR encoding API endpoint and the ENCODEURL() helper, you can generate batch QR codes dynamically:

Google Sheets Dynamic Formula (Paste in Column B)
=IMAGE("https://api.qrserver.com/v1/create-qr-code/?size=300x300&ecc=M&margin=2&data=" & ENCODEURL(A2))

Where A2 contains your destination URL, text, or serial number. Once pasted into cell B2, simply click the small blue square in the bottom-right corner of the cell and drag it down to immediately populate 500+ rows!

Formula Parameter Setting Value Technical Impact on Output
size=300x300 300x300 pixels High enough resolution for sharp on-screen rendering and small desktop printing.
ecc=M Level M (Medium ~15%) Provides 15% Reed-Solomon data recovery buffer while maintaining clean module density.
margin=2 2-4 modules Enforces standard quiet zone buffer around the perimeter of the code.
ENCODEURL(A2) Percent-encoded string Converts spaces, question marks, slashes, and ampersands into valid URI percent-encoding (%20, %3F).
Important Note on Spreadsheet Exporting: While the =IMAGE() formula is fantastic for quick digital audits, roster verification, and small print-outs, it renders raster PNGs inside spreadsheet cells. For commercial packaging, laser engraving, or offset printing, you need standalone vector SVG files generated via Method 3 or Method 4.

Method 3: Commercial Print Prep: Adobe InDesign & Illustrator Data Merge (VDP)

In professional graphic design and commercial pre-press, mass-producing customized print pieces with unique QR codes is known as Variable Data Printing (VDP). If you are designing event badges, employee access cards, product hangtags, or catalog labels, Adobe InDesign features a native QR code generator built into its Data Merge panel that requires zero third-party plugins.

The Special InDesign QR Code Column Header Syntax

To tell Adobe InDesign to interpret a CSV column as a live vector QR code rather than raw text, you must prefix the column header with the special symbol # (hash) followed by the QR code keyword:

The InDesign Data Merge Header Syntax:

In Microsoft Excel, entering #QRcode as a cell header may trigger a formula error. To prevent this, type an apostrophe first: '#QRcode. Excel will treat it as literal text, and InDesign will recognize it immediately.

Step-by-Step InDesign Variable Data Merge Walkthrough

1 Design Your Master Document Template

Create your master card layout in InDesign (e.g. standard 3.5 x 2.0 inch business card or 4 x 6 inch badge). Create a rectangular graphic frame where the QR code should appear.

2 Link Data Source in Data Merge Panel

Navigate to Window → Utilities → Data Merge. Click the flyout menu icon in the upper-right corner and choose Select Data Source. Select your UTF-8 encoded CSV file. InDesign will display your data fields with a distinctive QR matrix icon beside the #QRcode field.

3 Drag and Bind Data Fields to Frame

Drag the #QRcode variable from the Data Merge palette and drop it directly onto your rectangular graphic frame. Drag text variables (<<FirstName>>) into your text boxes.

4 Export Merged Master PDF

Click Create Merged Document or Export to PDF. InDesign will automatically generate an individual vector QR code for every single record in your spreadsheet and compile a single pre-press-ready PDF with razor-sharp vector graphics.

Method 4: Developer Automation: Free Python Script for 10,000+ Codes in Seconds

For developers, systems engineers, and logistics operations requiring maximum speed, customization, and local batch automation, writing a simple 30-line Python script is the gold standard. Using open-source libraries like segno or qrcode, you can process 10,000 records, apply custom error correction, export vector SVGs, and package everything into a neat ZIP archive in under 5 seconds.

Production-Ready Python Batch Generator Script

segno + zipfile

First, install the pure-Python, zero-dependency QR engine: pip install segno. Then run this script:

import csv
import os
import zipfile
import segno

def generate_bulk_qr(csv_path, output_zip_path, scale=10, error_level='M'):
    """
    Reads a CSV with columns [filename, content] and generates
    high-resolution vector SVGs packed into a single ZIP archive.
    """
    temp_dir = "qr_batch_temp"
    os.makedirs(temp_dir, exist_ok=True)
    generated_files = []

    print(f"[*] Processing dataset from: {csv_path}")
    with open(csv_path, mode='r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        for idx, row in enumerate(reader, start=1):
            name = row['filename'].strip()
            payload = row['url'].strip()

            # Compile matrix using local math engine
            qr = segno.make(payload, error=error_level)

            # Export pure scalable vector SVG
            out_file = os.path.join(temp_dir, f"{name}.svg")
            qr.save(out_file, scale=scale, border=4, dark="#000000", light="#FFFFFF")
            generated_files.append((out_file, f"{name}.svg"))

            if idx % 500 == 0:
                print(f"    - Generated {idx} codes...")

    print(f"[*] Compressing {len(generated_files)} vector assets into ZIP archive...")
    with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for file_path, arcname in generated_files:
            zipf.write(file_path, arcname)
            os.remove(file_path)

    os.rmdir(temp_dir)
    print(f"[✓] Complete! Master ZIP created at: {output_zip_path}")

# Execute batch run
if __name__ == "__main__":
    generate_bulk_qr("batch_sample.csv", "bulk_qr_export.zip")

Why This Local Python Script Outperforms Commercial Paid APIs

Zero Rate Limits:

Generate 100 codes, 10,000 codes, or 1,000,000 codes. You never get throttled by HTTP 429 Too Many Requests errors.

100% Offline Security:

Runs on an air-gapped machine without an internet connection. Zero customer PII or token hashes ever touch a cloud network.

Mathematical Vectors:

Outputs pure XML vector SVGs. Scales to any billboard or micro-chip size with microscopic precision.

Consistency & Sizing: Why Variable String Lengths Break Batch Layouts

One of the most insidious problems in bulk QR code production is matrix density variation. In a batch of 1,000 product SKUs, some records might be clean short URLs (25 characters), while others might be long promotional URLs with parameters (110 characters).

Because QR code versions expand by 4 modules per side as data increases, a 25-character URL produces a Version 2 (25x25 modules) matrix with chunky pixels, while a 110-character URL produces a Version 7 (45x45 modules) matrix with tiny, dense pixels:

Spreadsheet Record Character Count QR Version Total Modules Module Dot Size at 1.0 inch Print Optical Scan Impact
Record A (Clean ID) 22 chars Version 2 25 x 25 1.01 mm per module Instant scan from 2+ feet away
Record B (Standard URL) 48 chars Version 4 33 x 33 0.76 mm per module Standard scan from 1.5 feet away
Record C (Bloated UTM) 125 chars Version 7 45 x 45 0.56 mm per module Requires camera to hold close; scan delay

How to Standardize Density Across an Entire Batch

Strategy 1: Enforce URL Length Caps Across Spreadsheet Columns

Audit your spreadsheet before batch generation. Use short canonical redirect paths or URL shorteners so that 100% of URLs in your batch stay between 25 and 45 characters. This guarantees every code in your print run utilizes Version 3 or Version 4, maintaining uniform visual aesthetics on packaging.

Strategy 2: Lock the Minimum QR Version (Padding)

In developer tools and advanced generators, you can specify a forced minimum version (e.g. version=5). When a short string is encoded, the generator pads the data layer with empty fill bytes, forcing all codes in the batch to render with an identical 37x37 module grid.

File Naming Protocols, Automated ZIP Packaging & Vector SVG Quality

When your bulk generation finishes, you will possess hundreds or thousands of graphic files. If those files are named generically (qrcode_1.png, qrcode_2.png), matching the physical graphic to its corresponding product SKU or employee badge during print production becomes an operational nightmare.

1. The Primary Key Filename Rule

Always map the filename directly to your internal primary database key (e.g. SKU-90214.svg, EMP-4012.svg, ORDER-8821.svg). This allows automated warehouse packaging systems and pre-press software to dynamically locate and place the correct asset without human intervention.

2. Vector SVG vs. Raster 300 DPI PNG in Batch Runs

A common pitfall is exporting bulk archives as low-resolution 72 DPI PNGs. When sent to a commercial printer, the raster pixels blur, causing scanning failures.

  • Vector SVG (Recommended): Each file is tiny (under 4 KB), meaning a ZIP archive of 5,000 codes is only ~15 MB. Vector SVGs scale infinitely to any print resolution without pixelation.
  • High-Res PNG (300 DPI): If your print software requires PNGs, ensure each image is exported at a minimum of 1000 x 1000 pixels with anti-aliasing disabled to maintain crisp square module boundaries.

Diagnostic Matrix: 8 Critical Failure Scenarios in Bulk QR Generation

If your bulk generation job crashes, produces corrupt archives, or fails optical verification, cross-reference this diagnostic troubleshooting matrix:

Observed Batch Symptom Underlying Root Cause Immediate Technical Remediation
ZIP extraction errors / Corrupt Archive Script or browser ran out of memory (RAM) while compiling 2,000+ uncompressed bitmaps. Switch export format to lightweight vector SVG (under 4 KB each) or chunk the CSV into batches of 500 rows.
InDesign Data Merge shows broken link icon (?) CSV column header missing the mandatory #QRcode syntax prefix. Rename the spreadsheet column header to '#QRcode with a leading apostrophe in Excel.
Product UPC codes missing leading zeros Excel auto-formatted the numeric column as Integer, deleting zeros (0123 → 123). Format the column as Text before inputting numbers or use formula =TEXT(A2, "000000000000").
Row shifting / Misaligned CSV data Unescaped commas in URL parameters or street addresses split fields across columns. Wrap all payload fields in quotation marks or use semicolons / tabs as the delimiter.
Accent characters (é, ü, ñ) corrupt into Mojibake Spreadsheet was exported using Windows-1252 ANSI encoding instead of UTF-8. Re-export the CSV choosing CSV UTF-8 (Comma delimited) (*.csv) explicitly.
Filesystem errors: "Invalid Path / Filename" Filename column contains illegal characters like slashes, colons, or question marks (/ : ?). Sanitize the filename column using alphanumeric characters, hyphens, and underscores only.
QR codes print with mismatched pixel density Variable payload lengths across rows caused alternating QR versions (Version 2 vs Version 8). Standardize URL lengths using short branded domains or enforce a minimum version pad.
Printed codes fail camera optical scan Graphic designer cropped the quiet zone flush against corner finder eyes. Ensure a minimum 4-module quiet zone margin is preserved around all four exterior sides.

The 10-Point Pre-Flight Production Checklist for Mass QR Printing

Before sending a 10,000-unit print run to an offset litho press, flexographic packaging converter, or high-speed digital label printer, run this pre-flight verification checklist:

01
Primary Key Verification:

Confirm that 100% of rows have a non-empty, unique filename and ID without duplicates.

02
Protocol Scheme Verification:

Ensure every URL begins with an explicit protocol scheme (https://).

03
UTF-8 Character Integrity:

Verify international accents, spaces, and special symbols are preserved in UTF-8 encoding.

04
Reed-Solomon Level M or H:

Confirm error correction is set to at least Level M (~15%) for durability, or Level H (~30%) if embedding logos.

05
4-Module Quiet Zone:

Check that no text, borders, or artwork bleed into the 4-module margin surrounding each matrix.

06
High-Contrast Palette:

Verify dark foreground modules on an ultra-light background (WCAG contrast > 4.5:1). Never invert colors.

07
Vector SVG or 300+ DPI PNG:

Deliver vector SVG assets to your print partner to avoid raster RIP screening artifacts.

08
10:1 Sizing Formula Compliance:

Confirm minimum printed width matches expected scanning distance (e.g. 1.0 inch width for 10 inch scan distance).

09
Hardware Scanner Stress-Test:

Print a sample sheet of 20 random codes and test them with both iOS Safari and entry-level Android cameras.

10
Destination Server Capacity:

Ensure your target website server or CDN can handle the traffic spike when thousands of codes are scanned in the field.

Frequently Asked Technical & Commercial Questions

Can I legally generate 50,000 bulk QR codes for free without commercial royalties?

Yes, 100% legally. The QR code specification (ISO/IEC 18004) is an open international standard. Denso Wave, the original inventor, holds the patent but signed an irrevocable covenant waiving patent enforcement. You can create unlimited static QR codes in bulk for commercial packaging, retail merchandise, and events with zero royalties, zero attribution, and zero licensing fees.

Why do commercial QR code websites charge $50/month for bulk generation?

Commercial platforms bundle bulk creation with proprietary "dynamic redirect" servers and tracking dashboards. They generate short redirect URLs pointing to their cloud servers, allowing them to charge recurring subscription fees and hold your printed codes hostage. By generating authentic static QR codes via client-side tools, spreadsheet formulas, or local Python scripts, you bypass their fees completely.

What is the best file format for bulk QR code printing: SVG or PNG?

Vector SVG is always superior for print. SVG files are mathematical XML paths that scale to any size (from a 1-inch product label to a 20-foot outdoor banner) with zero pixelation or blurring. Furthermore, an SVG file is only ~3 KB, making a batch of 5,000 codes fast to download and store. PNG is acceptable only if exported at high resolution (300 DPI / 1000px+).

How can I track scans on 1,000 different bulk QR codes for free?

You can track every individual code for free using Google Analytics UTM campaign tags. In your spreadsheet, construct your destination URLs with a unique utm_content parameter matching each record's SKU or ID (e.g. https://mybrand.com/p?utm_source=qr&utm_medium=packaging&utm_content=SKU-1001). When scanned, Google Analytics 4, Plausible, or Matomo will automatically log traffic per SKU with zero paid subscriptions.

What is the maximum number of QR codes I can generate in a single batch?

In-browser client-side generators typically process 500 to 1,000 codes per batch comfortably within memory limits. For larger datasets (10,000 to 1,000,000 records), use the lightweight local Python script provided in Method 4 or Adobe InDesign Data Merge, which can process hundreds of thousands of records without hitting browser memory constraints.

Is there any risk that bulk static QR codes will expire?

Zero risk. Static QR codes compile the destination link or data directly into the physical matrix pattern. Because there is no intermediary proxy server or database between the phone camera and your destination, static bulk QR codes will function indefinitely for decades as long as your destination link stays online.

即時Webユーティリティ

今すぐQR Guyツールを体験

登録不要、クレジットカード不要、サーバーへのデータ送信ゼロ。ブラウザから直接ベクターQRコードを生成またはスキャンできます。

タグ:#Bulk QR Code#Batch QR Generator#CSV to QR Code#Excel Automation#Python QR Code#Vector SVG#Variable Data Printing#Free Tools
すべての記事に戻る
QG

QR Guy Engineering Team

QR Guyの開発チームは、追跡や有料制限のない、プライバシー重視の開発者向けWebツールの構築に取り組んでいます。

私たちの哲学について詳しく →