Guies

Com connectar Google Sheets a la teva app

Per connectar Google Sheets a la teva app, activa la Google Sheets API en un projecte de Google Cloud, crea un compte de servei, comparteix el full de càlcul amb l'adreça de correu del compte de servei i guarda la seva clau com a secret del costat del servidor. Després el teu servidor llegeix files amb spreadsheets.values.get i n'afegeix amb spreadsheets.values.append. Si els usuaris necessiten connectar els seus propis fulls, usa OAuth, i si el full és totalment públic, per llegir n'hi ha prou amb una clau API senzilla.

Aquesta guia cobreix quin mètode encaixa, les crides que necessites, les quotes i els inconvenients, i prompts per a un creador d'apps amb IA. Els detalls de Google provenen de la documentació per a desenvolupadors de Google a setembre de 2026.

Per què connectar un full

Motius habituals:

  • Mantenir el flux de treball de l'equip. El personal continua editant una llista de preus o un calendari a Sheets; l'app els mostra.
  • Recollir dades on la gent ja mira. Els nous registres, comandes o respostes de formularis arriben com a files.
  • Informes. Exportar les dades de l'app a un full per a qui viu amb fulls de càlcul.
  • Un pas intermedi. Començar des del full i després passar a una base de dades adequada. Consulta com convertir un full de càlcul en una app.

Tria com s'autentica la teva app amb Google

La guia de credencials de Google descriu tres tipus:

CredencialQuè pot accedirMillor per a
Clau APINomés dades disponibles públicament, com els fitxers compartits com a «Qualsevol amb l'enllaç»Llegir un full públic
Compte de serveiDades que són propietat de la teva app, o fitxers concrets compartits amb el correu del compte de serveiLa teva app llegint i escrivint els teus fulls
ID de client OAuthEls fitxers propis d'un usuari, després que els consentiDeixar que cada usuari connecti els seus fulls

Per a la majoria d'apps, un compte de servei és l'opció correcta: un conjunt de credencials, de la teva propietat, amb accés només als fulls que hi comparteixes explícitament.

Pas a pas amb un compte de servei

  1. Crea o tria un projecte de Google Cloud i activa l'API de Google Sheets.
  2. Crea un compte de servei i una clau per a ell. La clau és un fitxer JSON; tracta-la com una contrasenya.
  3. Comparteix el full de càlcul amb l'adreça de correu del compte de servei, com a lector per a només lectura o com a editor per escriure. La guia de Google indica que això es fa des de la pantalla de compartició habitual.
  4. Guarda la clau com a secret al servidor, per exemple GOOGLE_SERVICE_ACCOUNT_JSON, més l'ID del full (la cadena llarga de la URL del full) com a SHEET_ID.
  5. Crida l'API des del servidor amb la biblioteca client de Google per al teu llenguatge.
  6. Guarda les lectures a la memòria cau si molts visitants veuen les mateixes dades, perquè no arribis a la quota.

Les crides que usaràs

De la guia de Google per llegir i escriure valors:

MètodeQuè fa
spreadsheets.values.getLlegeix un rang, com Leads!A1:E
spreadsheets.values.batchGetLlegeix diversos rangs en una sola petició
spreadsheets.values.updateEscriu en un rang concret
spreadsheets.values.appendAfegeix files després de les dades existents en una taula

Els rangs usen la notació A1. Google indica que un rang sense nom de full, com A1:B2, s'aplica al primer full, així que posa explícitament el nom de la pestanya per evitar sorpreses quan algú reordeni les pestanyes.

RAW vs USER_ENTERED

Les escriptures necessiten un valueInputOption:

  • RAW guarda exactament el que envies, com a text. =1+2 es guarda com el text =1+2.
  • USER_ENTERED tracta l'entrada com si s'hagués escrit a Sheets: les dates es converteixen en dates i =1+2 es converteix en una fórmula.

Si escrius text que han escrit els usuaris a la teva app, usa RAW. Amb USER_ENTERED, algú podria enviar una fórmula que s'executa quan un company obre el full.

Quotes i errors

A setembre de 2026, la pàgina de límits de l'API de Sheets de Google indica:

LímitPeticions de lecturaPeticions d'escriptura
Per minut i per projecte300300
Per minut, per usuari i per projecte6060

No hi ha límit diari mentre et mantinguis dins de les quotes per minut. Superar-les retorna 429: Too many requests, i Google recomana el retrocés exponencial truncat: esperar més temps després de cada intent fallit, amb un retard aleatori, fins a un màxim. Una sola petició que triga més de 180 segons esgota el temps d'espera.

A la pràctica: no cridis l'API en cada visualització de pàgina. Guarda a la memòria cau les dades del full durant un minut o més, agrupa les lectures amb batchGet i agrupa les escriptures quan puguis.

Opcions i compromisos

EnfocamentAvantatgesInconvenients
Full com a font de dades en directeEl personal edita en una eina coneguda; no cal construir pantalles d'administracióQuotes, sense permisos per fila, fàcil de trencar canviant el nom d'una columna
Sincronitzar el full a una base de dadesLectures ràpides i fiables; l'app segueix funcionant si Sheets cauCal una tasca de sincronització i una regla sobre quin costat guanya
Base de dades primer, exportar al fullL'app és propietària de les dades; el full és un informeEls canvis al full no tornen a l'app
Eina d'automatització intermèdiaSense codi per a fluxos simplesUna altra subscripció; més difícil de depurar

Per a qualsevol cosa amb molts usuaris o dades sensibles, una base de dades és la millor font de veritat. Consulta què és una base de dades.

Prompts per al teu creador d'apps amb IA

Llegir un full:

Mostra la pestanya «Menú» del nostre Google Sheet a la pàgina de menú. Usa l'API de Google Sheets des del servidor amb un compte de servei la clau JSON del qual és al secret GOOGLE_SERVICE_ACCOUNT_JSON, i l'ID del full a SHEET_ID. Llegeix el rang Menu!A2:D (nom, descripció, preu, categoria). Guarda el resultat a la memòria cau durant 5 minuts. Si l'API falla, mostra l'última versió en memòria cau. Mai enviïs la clau al navegador.

Escriure files:

Quan algú envii el formulari de contacte, guarda'l a la nostra base de dades i també afegeix una fila a la pestanya «Leads» (data, nom, correu, missatge) usant spreadsheets.values.append amb valueInputOption RAW. Si Google retorna 429, torna a intentar-ho amb retrocés exponencial; si encara falla, deixa el lead a la base de dades i torna a intentar-ho més tard.

Errors habituals

  • Oblidar compartir el full amb l'adreça del compte de servei. L'API llavors retorna un error de permisos encara que la clau sigui correcta.
  • Clau al frontend o al repositori. La clau JSON dóna accés a tots els fulls compartits amb ella. Consulta com mantenir segures les claus API.
  • Usar USER_ENTERED per a l'entrada dels usuaris, cosa que permet la injecció de fórmules.
  • Cridar l'API en cada petició i arribar a la quota per minut al primer pic de trànsit.
  • Dependre de les posicions de les columnes. Algú insereix una columna i l'app llegeix dades equivocades. Llegeix la fila de capçalera i fes la correspondència pel nom, o bloqueja la capçalera.
  • Compartir el full més ampliament del necessari. «Qualsevol amb l'enllaç» el fa públic.
  • Usar un full com a base de dades multiusuari. Les escriptures concurrents i els permisos que falten provoquen pèrdua o filtració de dades.

Llista de verificació

  • API de Sheets activada; compte de servei creat
  • Full compartit amb el correu del compte de servei amb el rol més baix necessari
  • Clau i ID del full guardats com a secrets del servidor
  • Totes les crides fetes des del servidor
  • Noms de pestanya usats als rangs
  • RAW usat per al text proporcionat pels usuaris
  • Lectures guardades a la memòria cau; 429 gestionat amb retrocés
  • L'app es degrada amb elegància si Sheets no està disponible
  • Decidit quin costat és la font de veritat

Google Sheets a Mythex

Mythex té dues maneres diferents de treballar amb Sheets. Els connectors enllacen el teu compte de Google amb Mythex perquè l'agent el pugui usar mentre construeixes, per exemple llegir un full per construir-hi un tauler; la documentació diu que la credencial es queda al servei de connexió de Mythex i mai arriba al teu codi (consulta Connectors, i aprova cada permís que Google demani). Perquè l'app publicada llegeixi o escrigui un full per si sola, la via fiable és la d'aquesta guia: una clau de compte de servei guardada com a secret del projecte i crides a l'API de Sheets des del servidor, com a Integra qualsevol API. Si estàs superant el full, demana a l'agent que mogui les dades a la base de dades del projecte i que construeixi un tauler a sobre.

Preguntes

Com pot la meva app llegir un full de càlcul privat de Google?

La via habitual és un compte de servei de Google Cloud: activa l'API de Sheets, crea el compte de servei i la seva clau, i després comparteix el full amb l'adreça de correu del compte de servei com a lector o editor. El teu servidor usa la clau, guardada com a secret, per cridar l'API de Sheets.

Puc usar una clau API de Google per accedir a un full de càlcul?

Només per a dades públiques. La guia de credencials de Google diu que les claus API són per a l'accés anònim a dades disponibles públicament, com els fitxers compartits amb qualsevol persona que tingui l'enllaç. Els fulls privats necessiten un compte de servei o OAuth.

Quins són els límits de l'API de Google Sheets?

A setembre de 2026, Google indica 300 peticions de lectura i 300 d'escriptura per minut i per projecte, i 60 de cada per minut, per usuari i projecte, sense límit diari. Si els superes, rep un error 429; Google recomana un retrocés exponencial truncat.

He d'usar Google Sheets com a base de dades de la meva app?

Funciona per a apps petites amb poc trànsit on la gent també edita les dades al full. Per a molts usuaris, escriptures freqüents, relacions entre registres o permisos per usuari, una base de dades real és més fiable, i encara pots exportar a un full.

Mythex · Pricing · Crea qualsevol cosa amb IA · Plantilles de llocs web i aplicacions · Mythex comparat · Glossari de creació d’aplicacions amb IA · Eines gratuïtes per crear aplicacions amb IA · English

English አማርኛ العربية Български বাংলা Bosanski Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)