Sådan forbinder du Google Sheets til din app
For at forbinde Google Sheets til din app aktiverer du Google Sheets API i et Google Cloud-projekt, opretter en service-konto, deler regnearket med service-kontoens e-mailadresse og gemmer dens nøgle som en hemmelighed på serveren. Din server læser derefter rækker med spreadsheets.values.get og tilføjer rækker med spreadsheets.values.append. Hvis brugerne skal forbinde deres egne ark, bruger du i stedet OAuth, og hvis arket er helt offentligt, er en simpel API-nøgle nok til læsning.
Denne guide dækker hvilken metode der passer, de kald du skal bruge, kvoterne og faldgruberne samt prompts til en AI-app-builder. Google-detaljerne stammer fra Googles udviklerdokumentation pr. september 2026.
Hvorfor forbinde et ark overhovedet
Almindelige grunde:
- Bevar teamets arbejdsgang. Medarbejdere redigerer stadig en prisliste eller plan i Sheets; appen viser den.
- Indsaml data, hvor folk allerede kigger. Nye tilmeldinger, ordrer eller formularsvar lander som rækker.
- Rapportering. Eksportér appdata til et ark til folk, der lever i regneark.
- Et springbræt. Start fra arket, og flyt derefter til en ordentlig database. Se hvordan du laver et regneark om til en app.
Vælg hvordan din app logger ind hos Google
Googles guide til credentials beskriver tre typer:
| Credential | Hvad den kan få adgang til | Bedst til |
|---|---|---|
| API-nøgle | Kun offentligt tilgængelige data, fx filer delt med «Alle med linket» | Læsning af et offentligt ark |
| Service-konto | Data din app ejer, eller bestemte filer delt med service-kontoens e-mail | Din app, der læser og skriver dine ark |
| OAuth-klient-ID | En brugers egne filer, efter at de har samtykket | At lade hver bruger forbinde deres ark |
For de fleste apps er en service-konto det rigtige valg: ét sæt credentials, ejet af dig, med adgang kun til de ark, du udtrykkeligt deler med den.
Trin for trin med en service-konto
- Opret eller vælg et Google Cloud-projekt og aktivér Google Sheets API.
- Opret en service-konto og en nøgle til den. Nøglen er en JSON-fil; behandl den som en adgangskode.
- Del regnearket med service-kontoens e-mailadresse, som Viewer til skrivebeskyttet læsning eller Editor for at skrive. Googles guide siger, at det gøres via den normale delingsskærm.
- Gem nøglen som en hemmelighed på din server, fx
GOOGLE_SERVICE_ACCOUNT_JSON, samt regnearks-ID'et (den lange streng i arkets URL) somSHEET_ID. - Kald API'et fra serveren med Googles klientbibliotek for dit sprog.
- Cache læsninger, hvis mange besøgende ser de samme data, så du ikke rammer kvoten.
De kald du bruger
Fra Googles guide til læsning og skrivning af værdier:
| Metode | Hvad den gør |
|---|---|
spreadsheets.values.get | Læser ét område, fx Leads!A1:E |
spreadsheets.values.batchGet | Læser flere områder i ét kald |
spreadsheets.values.update | Skriver til et bestemt område |
spreadsheets.values.append | Tilføjer rækker efter de eksisterende data i en tabel |
Områder bruger A1-notation. Google bemærker, at et område uden arknavn, som A1:B2, gælder for det første ark, så navngiv fanen eksplicit for at undgå overraskelser, når nogen flytter rundt på faner.
RAW vs. USER_ENTERED
Skrivninger kræver en valueInputOption:
- RAW gemmer præcis det, du sender, som tekst.
=1+2gemmes som teksten=1+2. - USER_ENTERED behandler input, som hvis det var skrevet ind i Sheets: datoer bliver til datoer, og
=1+2bliver til en formel.
Hvis du skriver tekst, som brugere har skrevet i din app, så brug RAW. Med USER_ENTERED kan nogen indsende en formel, der kører, når en kollega åbner arket.
Kvoter og fejl
Pr. september 2026 viser Googles grænsesider for Sheets API:
| Grænse | Læsekald | Skrivekald |
|---|---|---|
| Pr. minut pr. projekt | 300 | 300 |
| Pr. minut pr. bruger pr. projekt | 60 | 60 |
Der er ingen døgngrænse, så længe du holder dig inden for de minutbaserede kvoter. Overskrides de, returneres 429: Too many requests, og Google anbefaler trunkeret eksponentiel backoff: vent længere efter hvert mislykket forsøg, med en tilfældig forsinkelse, op til et maksimum. Et enkelt kald, der tager over 180 sekunder, timer ud.
I praksis: kald ikke API'et ved hver sidevisning. Cache arkets data i et minut eller mere, batch læsninger med batchGet, og batch skrivninger, hvor det er muligt.
Muligheder og afvejninger
| Tilgang | Fordele | Ulemper |
|---|---|---|
| Ark som live datakilde | Medarbejdere redigerer i et kendt værktøj; ingen administrationsskærme at bygge | Kvoter, ingen rettigheder pr. række, let at ødelægge ved at omdøbe en kolonne |
| Synkroniser ark til en database | Hurtige, pålidelige læsninger; appen virker, selv hvis Sheets er nede | Du skal bruge et synkroniseringsjob og en regel for, hvilken side der vinder |
| Database først, eksportér til ark | Appen ejer data; arket er en rapport | Redigeringer i arket flyder ikke tilbage |
| Automatiseringsværktøj imellem | Ingen kode til simple flows | Et ekstra abonnement; sværere at fejlfinde |
Til alt med mange brugere eller følsomme data er en database den bedre sandhedskilde. Se hvad en database er.
Prompts til din AI-builder
Læsning af et ark:
Vis fanen «Menu» fra vores Google Sheet på menusiden. Brug Google Sheets API fra serveren med en service-konto, hvis JSON-nøgle ligger i hemmeligheden GOOGLE_SERVICE_ACCOUNT_JSON, og regnearks-ID'et i SHEET_ID. Læs området Menu!A2:D (navn, beskrivelse, pris, kategori). Cache resultatet i 5 minutter. Hvis API'et fejler, vis den sidst cachede version. Send aldrig nøglen til browseren.
Skrivning af rækker:
Når nogen sender kontaktformularen, gem den i vores database og tilføj også en række til fanen «Leads» (dato, navn, e-mail, besked) med spreadsheets.values.append og valueInputOption RAW. Hvis Google returnerer 429, prøv igen med eksponentiel backoff; hvis det stadig fejler, behold leadet i databasen og prøv igen senere.
Almindelige fejl
- At glemme at dele arket med service-kontoens e-mail. API'et returnerer så en tilladelsesfejl, selvom nøglen er fin.
- Nøglen i frontenden eller i repositoryet. JSON-nøglen giver adgang til alle ark, der er delt med den. Se hvordan du holder API-nøgler sikre.
- At bruge USER_ENTERED til brugerinput, hvilket tillader formel-injection.
- At kalde API'et ved hver forespørgsel og ramme den minutbaserede kvote ved den første trafiktop.
- At stole på kolonnepositioner. Nogen indsætter en kolonne, og appen læser de forkerte data. Læs headerrækken og map efter navn, eller lås headeren.
- At dele arket bredere end nødvendigt. «Alle med linket» gør det offentligt.
- At bruge et ark som multi-bruger database. Samtidige skrivninger og manglende rettigheder giver tabt eller lækket data.
Tjekliste
- Sheets API aktiveret; service-konto oprettet
- Arket delt med service-kontoens e-mail med den laveste nødvendige rolle
- Nøgle og regnearks-ID gemt som hemmeligheder på serveren
- Alle kald foretaget fra serveren
- Fanenavne brugt i områder
- RAW brugt til tekst fra brugere
- Læsninger cachet; 429 håndteret med backoff
- Appen nedgraderer elegant, hvis Sheets er utilgængelig
- Besluttet hvilken side der er sandhedskilden
Google Sheets i Mythex
Mythex har to forskellige måder at arbejde med Sheets på. Connectors forbinder din Google-konto til Mythex, så agenten kan bruge den, mens du bygger, fx til at læse et ark og bygge et dashboard ud fra det; dokumentationen siger, at credentialet bliver hos Mythex' forbindelsestjeneste og aldrig havner i din kode (se Connectors, og godkend hver tilladelse Google beder om). For at den publicerede app selvstændigt kan læse eller skrive i et ark, er den pålidelige vej den, der står i denne guide: en service-kontonøgle gemt som projekthemmelighed og Sheets API-kald fra din server, som i Integrate any API. Hvis du vokser fra arket, så bed agenten om at flytte dataene til projektets database og bygge et dashboard ovenpå.
Spørgsmål
Hvordan kan min app læse et privat Google Sheet?
Den almindelige måde er en Google Cloud-service-konto: aktivér Sheets API, opret service-kontoen og dens nøgle, og del regnearket med service-kontoens e-mailadresse som Viewer eller Editor. Din server bruger nøglen, gemt som en hemmelighed, til at kalde Sheets API.
Kan jeg bruge en Google API-nøgle til at få adgang til et regneark?
Kun til offentlige data. Googles guide til credentials siger, at API-nøgler er til anonym adgang til offentligt tilgængelige data, fx filer delt med alle, der har linket. Private ark kræver en service-konto eller OAuth.
Hvad er grænserne for Google Sheets API?
Pr. september 2026 angiver Google 300 læse- og 300 skrivekald pr. minut pr. projekt og 60 af hver pr. minut pr. bruger pr. projekt, uden døgngrænse. Overskrides grænserne, returneres en 429-fejl; Google anbefaler trunkeret eksponentiel backoff.
Skal jeg bruge Google Sheets som min apps database?
Det virker til små apps med lav trafik, hvor folk også redigerer data i arket. Ved mange brugere, hyppige skrivninger, relationer mellem poster eller rettigheder pr. bruger er en rigtig database mere pålidelig, og du kan stadig eksportere til et ark.