When you need a whole set of codes
Some jobs need dozens or hundreds of QR codes that look the same but point to different places. A restaurant wants a code on every table that opens the order page for that table, a warehouse wants one on every shelf or machine that opens its record, an event needs one on every ticket or seat, and a shop wants one on each product label that leads to that product's page. Making them one by one means pasting each address, downloading each file and renaming it, and sooner or later one of them ends up with the wrong number. The Many codes tab above makes a code for every row of the list in one step.
You can bring the list in three ways. Paste it with one link or piece of text per line, copy one or more columns straight from Excel or Google Sheets and paste them in, or open a CSV or Excel (.xlsx) file from your computer. If the codes follow a simple pattern, such as ticket numbers, you don't need a list at all, because the Numbered option writes one for you. Whichever way you choose, the list stays in your browser while you work.
Each code in the set is static, like every code made on this site: the address is written into the pattern, so it can't change once the labels are printed. If there is any chance the destinations will move, for example because you might switch your online shop or booking system, point the codes at addresses on your own domain, such as example.com/p/1042, and forward those to wherever the content lives. The QR code generator page explains the difference between static and dynamic codes in more detail.
Preparing your spreadsheet
The generator works best with a simple table: one code per row, one column that holds what goes into the code, and any other columns you want to keep next to it, such as a table number, a product name or a location. Column names in the first row are welcome. The generator guesses whether the first row holds names or data and which column holds the codes, and if it guesses wrong you can correct both before anything is made. Empty rows are skipped, so a gap between two blocks of products doesn't produce a blank code.
Write web addresses in full when you can. When most of a column consists of web addresses, the ones written without https:// get it added, because phones treat a bare address as text rather than a link, but in a column that is mostly other text nothing is added, and a bare address there stays plain text. If your addresses follow a pattern, let the spreadsheet build them with a formula such as ="https://example.com/table/"&A2, then copy the column and paste it into the generator, which receives the finished addresses rather than the formula. Watch out for numbers with leading zeros as well, because Excel tends to turn 0042 into 42 unless the column is formatted as text.
Rows that are too long for a QR code are left out; the first five are listed with their row number, so you can shorten them and try again, and the summary counts the rest. The first code of the list appears in the preview with its scan check, which tells you whether that one code reads back correctly at your print size. Since the check looks at the first row only, it helps to move your longest address to the top while you choose the print size: a longer address makes a denser code, and if the longest one scans comfortably, the shorter ones will too.
Numbered codes without a spreadsheet
Tickets, seats, raffle stubs and asset tags often need nothing more than a running number at the end of an address. The Numbered option builds that list for you from five settings: the text before the number, such as https://example.com/ticket/, the first number, how many codes you need, how many digits each number should have, and optional text after the number. With a first number of 1, a count of 300 and four digits, you get https://example.com/ticket/0001 through https://example.com/ticket/0300.
The digits setting adds leading zeros, and it is worth using even when you don't strictly need it. All the numbers then have the same length, so the codes come out with the same density, and the files sort correctly in every program, including spreadsheets and systems that sort names letter by letter, where 10 would otherwise land between 1 and 2. The numbers only mean something if your website answers each address, so set up the pages, or a single page that reads the number from the address, before you print. You can also number plain text instead of an address, such as SEAT-A-0001, when the codes will be read by your own scanner or app rather than opened in a phone's browser.
One design for the whole set
Every code in the list shares the same design: the code and background colors, the dot and corner styles, the logo, the frame with its caption, the error correction level and the quiet zone. You set it up once while looking at the first code in the preview, and the whole set follows. That consistency is the main reason to make the codes together, because codes made one at a time on different days tend to drift apart in color, size and margin, and the differences show once they hang side by side.
Choose the design with the full set in mind. A logo in the middle uses part of each code's error correction and makes the codes denser, and with long addresses that extra density adds up, so try the longest row with the scan check before you settle on a print size. A frame caption is identical on every code, which makes it the place for a general instruction such as "Scan to order", while the part that differs from row to row, like the table number, belongs on the label. The QR code generator page covers colors, logos and error correction in more depth.
Downloading a ZIP or printing labels
The download buttons give you the whole set in one ZIP file, with an SVG, PDF or PNG file for every row, and no account is needed. File names come from the content, so a code holding example.com/table/12 is saved as example.com-table-12.svg, and you can find a particular code without opening any files. The ZIP also contains codes.csv, a table that lists each file name next to its row and every column of your list, which is handy when you hand the codes to a designer or place them with the data merge feature of a layout program. One ZIP holds up to 500 codes, so for a longer list you download the first 500 and then make a second list that starts at row 501, or numbering that starts at 501.
Print on labels takes the other route and opens the free label editor with one label per row, for lists of up to 5,000 rows, on sticker sheets for a home printer or labels for a thermal printer. Another column of your list, such as the table number or the product name, can be printed under each code, so every label also says in plain words what its code is for. Printing a whole list needs a free account, which includes five batch exports a month. Our page on bulk QR code labels describes how printing from a list works in the editor, and the barcode generator makes sets of barcodes the same way.
Make your QR code and put it on labels
Make the QR code at the top of this page, check that it scans, then press Print on labels: the free label editor opens with it on the label you pick, ready to print on a sticker sheet or a label printer.
Make a QR code ↑FAQ
Can each code in the set have its own color or logo?
Not within one list, because the design applies to every row. Split the list into groups instead, for example one per product line or one per floor, and make each group with its own design. Each group then downloads as a ZIP of its own.
Can I make Wi-Fi or contact codes in bulk?
No. The Many codes tab takes one link or one piece of text per row, while Wi-Fi and contact codes are built from several fields each, so those are made one at a time in the Wi-Fi and Contact tabs. A list of web addresses, one per person or per room, is the closest you can get in bulk.
Can I see how often each code is scanned?
The codes don't count scans themselves, because they lead straight to your address with no service in between. Your own website statistics can do it: add a short parameter to each address, such as ?src=table12, and the visits from each code show up separately. Keep the parameter short, since every extra character makes the code denser.
Is my spreadsheet uploaded anywhere?
No. The file is opened and read in your browser, and the codes and the ZIP are made there as well, so the list isn't sent to our server to make them. When you press Print on labels, the list goes to the label editor inside your browser too, not through a web address, and it only reaches our server if you save the label design to your account there.
Related pages
QR Code is a registered trademark of DENSO WAVE INCORPORATED.
Updated 9 November 2026