Skip to content
CornerTools

Bulk QR Code Generator

Make hundreds of QR codes from a spreadsheet: links, Wi-Fi, contacts or UPI, as a ZIP of images or a printable label sheet.

1

CSV, TSV, text or Excel (.xlsx); up to 1,000 rows. Or copy cells in Excel or Google Sheets and paste them here.

Content

Design

Modules
Corner squares
Error correction

Higher levels survive more damage but make a denser code.

Your QR codes appear here once you add data.

Images

Label sheet

Paper

The largest width these labels hold.

Choose a label column to print a line under each code. Print at 100% (actual size), not “Fit to page”.

Makes a QR code for every row of a spreadsheet: a link, text, a contact card, Wi-Fi details, a UPI payment, an email, a phone number, an SMS or a map location, up to 1,000 at a time. Download them as a ZIP of PNG or SVG images, or as a label sheet PDF with each code at one printed size and its label under it. Each code holds its content itself, so it never expires. Everything is made in your browser: the table, and any logo, never leave your device.

How to use it

Data. Paste rows copied from Excel or Google Sheets, type one link per line, or open a CSV, TSV, text or Excel (.xlsx) file; an Excel file is read from its first sheet. Delimiter is found automatically: a list of links that holds commas is read one per line, since links contain commas of their own. A header row is found from its names, or from a first row that isn't data when the rows under it are; the switch overrides it either way.

Content and columns. Choose what the codes hold, then which column fills each field. Columns are matched by their header names (url, ssid, upi id, name and others, ignoring case, spaces, _ and -), and each choice shows the column's first value, so a wrong split shows at once. Fields that are usually one value for the whole batch, such as Wi-Fi security, the UPI payee name or an SMS message, offer Same for all. Without a security column, a row with a password makes a WPA network and a row without one an open network. A Location takes latitude and longitude columns, or one column of full Google Maps links.

Rows that need a look. A row that can't make a code is listed by its row number as the spreadsheet shows it, and the rest still generate. A row made with something to check, such as a WPA password shorter than 8 characters, is listed separately. Repeated rows are kept and counted, and their files are numbered -2, -3.

Label and files. The label column names each file and prints under its code on the label sheet, and on the images too while Label under codes is on. Without one, files are named after what tells the codes apart: a link's address, a contact's name, a network's name, a UPI ID or a phone number. The design (colours, shapes, margin, error correction and one logo for every code) is the QR Code Generator's; a logo raises error correction to H, and a code too small for one is made without it.

Label sheets. Choose A4 or Letter and an Avery layout, or enter a custom grid. Every code prints at one width, by default the largest the label holds, leaving room for a 2.8 mm line of text when codes have labels; a width you set that doesn't fit is reported rather than shrunk. Codes with more content have more, smaller modules at the same width, so the densest code is checked against 0.4 mm per module. Start at label skips labels already used on a part-used sheet.

WhatsApp chat codes need a country for each number and are not offered here; make them one at a time with the WhatsApp Link Generator.

Examples

Wi-Fi codes for hotel rooms

Data
Room	SSID	Password
101	Hotel-101	sunrise-101
102	Hotel-102	sunrise-102
103	Hotel-103	sunrise-103
Content
Wi-Fi
Label
Room
Row 2 scans as
WIFI:T:WPA;S:Hotel-101;P:sunrise-101;;

SSID, Password and Room are matched by their names, Room as the label. With no security column, each password makes a WPA network. Row 2's code is saved as 101.png and prints with 101 under it on the label sheet.

Two links at one printed width

Row 2
https://example.com
Row 3
https://example.com/menu/table-12?utm_source=qr&utm_medium=print
Print width (mm)
15

With the default margin, the short link's code is 33 modules across, so each prints 0.45 mm wide. The long link's code is 45 modules across, so each prints 0.33 mm wide, under the 0.4 mm guide: the tool names row 3 and suggests at least 18 mm.

How large a code each label sheet holds

Per label sheet, the largest QR code with a line of text under it, and the longest link that still prints at 0.4 mm per module at that width (error correction M, default margin)
LabelsPaperLargest codeLongest link
21 per sheet, 63.5 × 38.1 mm (L7160)A431.3 mm331 characters
24 per sheet, 63.5 × 33.9 mm (L7159)A427 mm213 characters
40 per sheet, 45.7 × 25.4 mm (L7654)A418.6 mm84 characters
65 per sheet, 38.1 × 21.2 mm (L7651)A414.3 mm26 characters
30 per sheet, 2⅝ × 1 in (5160)Letter18.6 mm84 characters
10 per sheet, 4 × 2 in (5163)Letter44 mm711 characters
24 per sheet, 1½ × 1½ in (22805)Letter31.3 mm331 characters

Frequently asked questions

Excel shows a long number in a General cell as 9.19876E+11 and saves it that way to CSV, losing its digits: the tool lists such rows. It also drops leading zeros, which no tool can restore. Format the column as Text before typing or pasting the numbers, or open the .xlsx file itself, which keeps all of a number's digits.
No: each code holds its content, so a printed code always reads the same. To change a destination later, point the codes at pages on a site you control and change those pages, or redirect their addresses.
On the images, yes: captions use your device's fonts. The label sheet prints Latin, Greek, Cyrillic and Devanagari (Hindi, Marathi) letters; other characters are left out of the printed label, and the row is listed so you can check it.
Yes, with no licence or fee. DENSO WAVE, which invented the QR code, states that it can be used freely as long as it follows the JIS or ISO standards. "QR Code" is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

See also