A Google Sheets QR code stores the spreadsheet's share link, so a scan opens the data on a phone. Two things decide whether that works in practice: who can open the file, and whether the table is readable on a narrow screen. Spreadsheets are built for wide monitors, so a sheet that looks fine on your laptop can be hard to use after a scan.
Paste the link above and the generator encodes exactly what you paste. It runs in your browser, so your link stays on your device.
How do you make a QR code for a Google Sheet?
- Open the spreadsheet and click Share.
- Under General access, choose Anyone with the link and set the role to Viewer.
- Click Copy link and paste it into the Google Sheets Link field.
- Download the code, then scan it from a phone that is not signed in to your Google account.
https://docs.google.com/spreadsheets/d/FILE_ID/edit?usp=sharing
Which link should you use?
| Link | What opens | Who can see the other tabs |
|---|---|---|
| Share link | The spreadsheet | Everyone who can open the file |
Share link with #gid= | A chosen tab first | Everyone who can open the file |
| Publish to web, one sheet | A separate page showing the sheet you published | Choose this when only part of the file is meant for readers |
Each tab has its own gid number, visible in the browser address bar when that tab is open. Adding it changes where the reader starts and nothing else. It is a shortcut, so it gives no protection for the tabs you skipped.
Will hidden tabs stay private?
No. Google's help says that hiding a sheet is different from protecting it and that viewers can still access content in hidden sheets, for example by making a copy and unhiding them. The same applies to working tabs full of costs, names or notes. Move private data to a separate file, and put only the public table in the file behind the code.
What does a phone show after a scan?
We tested Google's public example spreadsheet in a Chromium browser using Android phone emulation, signed out, at 375 pixels wide. The /edit address redirected to a read-only page at /htmlview, with a prompt to use the Sheets app. Tab names sat in a bar along the bottom. Only the first three columns fit on screen, and the rest needed sideways scrolling. Someone with the app installed may see a different view, so try a real phone too.
That result points to a simple way of preparing a sheet for scanning:
- Make a short tab or file just for readers, with only the columns they need.
- Put the most important column first, with the fewest columns you can manage.
- Sort the rows so that the useful ones come first, such as today's rota at the top.
- Keep cell text short, and avoid merged cells across wide ranges.
Can people add data through the code?
Do not use the Editor role for this. Editors can change every cell, and by default they can also change who has access. When a code on a wall or a parts bin needs to collect entries, make a Google Form that saves to the sheet and use the Google Forms QR code generator. People get a simple phone form, and your sheet stays out of their reach.
Take care with the sheet that stores form responses. It often holds names and email addresses, so it should not be the file you share behind a public code.
Does the code update when the data changes?
Yes, as long as it is the same file. New rows and corrected values appear at the same address, so a weekly price list or rota needs no reprint. A published sheet updates automatically too, and Google says that can take a few minutes. A new code is only needed if you move to a different spreadsheet, since each file has its own ID.
Can you make one code per row?
Yes. This suits equipment labels and stock bins, where each item has its own entry. Put a link for each item in a CSV and create the codes with the bulk generator. A link can include a cell range, as in #gid=0&range=A12. In our phone test the redirect kept that part of the address, but we did not confirm that the page jumps to the row on every device, so scan a sample first. A small separate page per item is more dependable when the row must appear straight away.
How large should you print it?
Sheets links are slightly longer than Docs links. A typical share link is about 100 characters, which needs a 49 by 49 module code at our default error correction level (Q). Removing ?usp=sharing leaves about 88 characters and a 49 by 49 code as well, while a full link with a #gid= value reaches about 115 characters and 53 by 53 modules. Plan for the longer link if you need a specific tab, and check the print size guide before printing labels.
Is it safe for business data?
A code that uses Anyone with the link is a public link. Anyone who scans or photographs it can open the file without signing in, and Google shows them only as anonymous animals. For staff-only data, use your organization's sharing setting so that a scan works only for signed-in colleagues. You can also turn off download, copy and print for viewers in the sharing settings, though anyone who can read the data on screen can still note it down.
Can you count scans?
Not with a static code, because it opens Google directly. A dynamic URL QR code adds scan counts and lets you point the printed code at a different sheet later.
Where does a Google Sheets QR code work well?
- Rotas and timetables on staff room walls, where one link stays current. Use the organization setting if they include names.
- Price lists and stock lists at a counter or trade stand.
- Equipment records on machines, with service dates and contacts.
- Class data such as group lists and marks schemes. See QR codes for education.
For text documents, use the Google Docs QR code generator. The Google QR code guide covers other Google services.
How do you test it?
Scan the exported code on mobile data, signed out of Google. Confirm the sheet opens without a request-access page, that the first screen shows what people came for, and that you cannot edit a cell. Then check the file with the QR validator.