Scanning into Google Sheets is a solved problem several times over, and the methods are genuinely different — not just cheaper and more expensive versions of each other. This guide covers all of them, including the free ones, and says plainly where each stops working.
We build one of the paid options, so treat the section about scanner links as informed and interested. Everything else here is a straight assessment; for a lot of readers a free method is the right answer and we would rather say so.
The five methods
- A Google Form with a short-answer field, opened on a phone. Free, permanent, no cap.
- An Apps Script web app with a JavaScript barcode library. Free, fully customisable, and you maintain it.
- A phone app from an app store that syncs to Sheets. Usually an install and an account per scanner.
- A USB or Bluetooth barcode scanner attached to a computer, typing into a cell. Fast and dumb, and tethered to a desk.
- A hosted scanner link: a URL that opens a camera scanner in the browser and appends rows. No install for the person scanning.
Method 1: a Google Form
Make a Form with one short-answer question, link responses to a Sheet, open it on a phone and tap the field. Most phone keyboards can invoke a scanner, and on Android the Lens button reads a barcode straight into the box.
- Genuinely free forever, with no row cap and no trial.
- Nothing to install, and anyone with the link can submit.
- A submission with no signal FAILS and that scan is gone, with no warning.
- One form per workflow, and respondents can edit their own responses unless you lock it down.
- Every scan needs a tap into the field first, which is slow past a hundred items.
- No way to tell which person or device submitted a row.
The offline failure is the single most common reason people move off Forms. Stockrooms, basements, warehouses with steel racking and venues with bad wifi are exactly where signal dies, and a Form gives you no indication that a submission was lost.
Method 2: an Apps Script web app
A small HTML page hosted by Apps Script, a JavaScript barcode library for decoding, and a script that appends to your Sheet. Free, and you control every part of it.
- No per-user cost ever, and no vendor dependency.
- You can build offline queueing, duplicate rules, anything — if you write it.
- You now maintain software. Camera permissions, iOS quirks and library updates are yours.
- Apps Script quotas apply, and debugging during a live count is nobody's idea of a good afternoon.
Right call if you enjoy the work or already maintain scripts. Wrong call if the person who built it leaves and the stocktake still has to happen.
Method 3: a phone app
Plenty of app-store scanners write to Sheets. They are often the fastest single-user experience, and the friction is administrative rather than technical.
- An install for every person scanning, and usually a linked Google account each.
- Free tiers commonly cap rows or reserve the Sheets integration for a paid plan — read the specific limit, not the word free.
- Frequently priced per user, which is the expensive shape for temporary or seasonal staff.
- On shared hardware, some apps lose their Google session and need re-authenticating mid-shift.
Method 4: a USB or Bluetooth scanner
A hardware scanner acts as a keyboard: click a cell, scan, the value appears, the cursor moves down. Genuinely excellent for a fixed station, and worth remembering because people overlook it.
- Very fast and very reliable for high volume at one desk.
- No app, no account, no browser involved.
- Tethered to a computer, so it cannot walk the aisles or work a door.
- One scanner, one station — this does not scale to a team spread across a site.
Method 5: a hosted scanner link
This is the category we build, so read accordingly. The admin connects a Sheet once and shares a URL; whoever is scanning opens it in a normal phone browser. No install and no account for the person scanning, which is the whole point when your scanners are temporary staff, volunteers, students or contractors.
The pricing shape is what differs most. QR to Sheets is free for 300 scans, one link and one device, then $7 per registered device per month with unlimited scans. Per-device means thirty people sharing four phones costs the same as four people. Tools priced per user charge for every individual instead.
| Capability | Google Forms / Apps Script (DIY) | QR to Sheets |
|---|---|---|
| Cost to start | Free (Form or Apps Script) | Free for 300 scans |
| Install for scanners | None (Form) / None (Script) | None |
| Account for scanners | None | None |
| Works with no signal | Form: no. Script: only if you build it | Saved on device, syncs later |
| Per-device attribution | No | Yes |
| Duplicate protection | You build it | Built in |
| Who maintains it | You | Vendor |
| Where the data lives | Your Google Sheet | Your Google Sheet |
Choosing, in one minute
- One person, occasional, always in signal: Google Form. Stop reading.
- One fixed desk, high volume: a USB scanner into a cell.
- You maintain scripts and want no vendor: Apps Script.
- Several people, or dead spots, or you need to know who scanned what: a hosted scanner link.
- Thousands of SKUs and real warehouse operations: consider proper inventory software, not a spreadsheet.
Three things that go wrong regardless of method
Overwriting instead of appending
The most expensive mistake here. Append one row per scan and derive totals. A single overwritten quantity column cannot tell you when a discrepancy appeared, who counted a shelf, or whether something was counted twice.
Timestamps in the wrong timezone
Many tools write UTC. If your team works in GMT-6, every row is six hours off and every daily report straddles the wrong boundary. Check what timezone your tool writes, and whether you can change it, before you build reports on it.
Timestamps stored as text
If a timestamp arrives in a format Google Sheets does not recognise as a date, the column is stored as text — and sorting, date filters and formulas silently fail on it. Test by trying to sort the column: if it sorts alphabetically rather than chronologically, it is text.
What lands in the sheet
- Timestamp, automatically, in your own timezone.
- The scanned value exactly as encoded.
- Which link, station or workflow produced it, when you have more than one.
- Which device or person scanned, if accountability matters.
- A stable row id, so a correction can reference something.
Step by step
- 1
Decide what one scan means
An attendance mark, a stock count, a sign-in, an asset movement. This decides your columns, and changing it later means re-keying everything.
- 2
Decide who is scanning, and on what
One person on their own phone is a different problem from twelve temporary staff on shared handsets. This single answer eliminates most of the options below.
- 3
Test with the network off
Airplane mode, then scan five items. Whatever happens is what will happen in your stockroom, basement or venue. This is the fastest way to disqualify a method.
- 4
Keep the sheet append-only
One row per scan, never edited. Derive counts and current state with formulas or a pivot. Overwriting a cell destroys the history that makes the data worth having.
- 5
Check the timestamp timezone
A timestamp written in UTC when your team works in GMT-6 makes every report wrong by six hours. Confirm what timezone your tool writes before you trust a report.
Frequently asked questions
Can I scan into Google Sheets for free?+
Yes. A Google Form linked to a Sheet is free with no row cap, and an Apps Script web app with a barcode library is free too. The Form loses scans when there is no signal; the Apps Script route means you maintain the code. Both are genuinely free, with no hidden tier.
What is the fastest way to scan into Google Sheets?+
For a fixed desk, a USB barcode scanner typing straight into a cell is hard to beat. For people moving around, a browser-based scanner link is fastest because there is no field to tap before each scan and nothing to install.
Do the people scanning need a Google account?+
It depends on the method. Google Forms and hosted scanner links need nothing from the scanner. Most app-store scanners require an install and often a linked Google account per person, which is the real cost with temporary staff.
What happens to scans when the phone loses signal?+
A Google Form submission fails and the scan is lost with no warning. Tools that write to the device first keep working and sync when the connection returns. Test this with airplane mode before committing to anything.
Why is my timestamp column not sorting correctly?+
Because it is being stored as text rather than a date. That happens when the timestamp arrives in a format Sheets does not parse, such as a raw ISO string ending in Z. A format like 2026-08-22 10:01:54 is recognised as a real datetime and sorts properly.
Can several people scan into the same sheet at once?+
Yes, with every method here. The difference is attribution: a shared Form cannot tell you who submitted which row unless you add a field they might mistype, whereas per-device tools record it automatically.
Should I track quantities or individual scans?+
Individual scans, appended. Derive quantities with a pivot or formula. An append-only log can be audited and corrected; an overwritten quantity cell cannot.
Is there a scan to Google Sheets app, or can it work in the browser?+
Both exist. App Store products such as Scan to Sheets from Mobile First require an install — their listing states 130.6 MB and iOS 15.0 or later, read on 2026-09-08 — which suits a phone you own and use daily. A scanner link runs in the phone browser instead, so temporary staff and volunteers scan without installing anything or making an account. Pick the install if you need long offline stretches or Bluetooth hardware; pick the browser if the people scanning are temporary or numerous.