Pricing

Cómo Conectar PostgreSQL a Google Sheets

Read this guide in English →

psql, brooked_prodbrooked_prod=#SELECT region, revenue, ordersbrooked_prod-#FROM regional_summarybrooked_prod-#ORDER BY revenue DESC LIMIT 4;regionrevenueordersUS East$4,218,00012,841EU West$2,901,0008,204APAC$1,712,0005,112US West$1,440,0004,390(4 rows)brooked_prod=#
JW
James Whitfield

La cadena JDBC exacta que funciona con Apps Script, exportaciones con psql/COPY, federación con postgres_fdw y complementos no-code, además de las particularidades por proveedor cloud (RDS, Supabase, Neon, Cloud SQL), la lista blanca de IPs de Google, ambos sentidos de sincronización y un agente de IA que escribe el SQL.

PostgreSQL es la base de datos por defecto de la mayoría de startups modernas, y Sheets, también por defecto, no la entiende nativamente. Esta guía cubre las cuatro rutas reales para conectar Postgres a Google Sheets en 2026: Apps Script con el driver JDBC, exportación con psql/COPY a CSV, federación con postgres_fdw para queries cross-database, y un complemento no-code como Brooked.

Versión corta: CSV vía psql para extracciones únicas, Apps Script para flujos de un desarrollador, Brooked para todo lo recurrente con escritura bidireccional y un agente de IA que escribe el SQL.

Comparación rápida: 4 formas de llevar Postgres a Google Sheets

MétodoCostoSetupActualizaciónBidireccionalCódigoIdeal para
Apps Script + JDBCGratis1–2 horasActivador temporalDIYRequeridoFlujos personalizados de un solo desarrollador
psql o pg_dump → CSVGratis5 min por extracciónManualNoCLICapturas únicas
Postgres FDW o dblinkGratis1 horaQuery-timeLimitadoSQLConsultas cross-database que ya escribes en SQL
Complemento BrookedFree tier · Pro $29/usuarioMenos de 5 min15 min / horario / diarioNingunoEquipos que quieren que siga funcionando, RDS, Supabase, Neon, Railway

Método 1, Apps Script con el driver JDBC de Postgres

Google Apps Script incluye un servicio Jdbc que conecta a Postgres directamente. Abre un sheet, Extensiones → Apps Script, pega un script, ejecuta.

Apps Script
function importPostgresToSheet() {
  const url = 'jdbc:postgresql://HOST:5432/DATABASE?ssl=true&sslmode=require';
  const conn = Jdbc.getConnection(url, 'USERNAME', 'PASSWORD');
  const stmt = conn.createStatement();
  const rs = stmt.executeQuery('SELECT id, name, created_at FROM users WHERE created_at >= NOW() - INTERVAL \'30 days\'');

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clearContents();

  const meta = rs.getMetaData();
  const cols = meta.getColumnCount();
  const headers = [];
  for (let c = 1; c <= cols; c++) headers.push(meta.getColumnName(c));
  sheet.appendRow(headers);

  while (rs.next()) {
    const row = [];
    for (let c = 1; c <= cols; c++) row.push(rs.getString(c));
    sheet.appendRow(row);
  }
  rs.close(); stmt.close(); conn.close();
}

Programa con el menú Triggers de Apps Script. Pros: Gratis, control total, sin terceros. Contras: Límite de 6 minutos de ejecución. Credenciales en plaintext a menos que las muevas a Script Properties. Cambios de schema lo rompen en silencio.

Cadenas de conexión por proveedor cloud (RDS, Supabase, Neon, Cloud SQL)

El error más frecuente con Apps Script: pegar la URI estándar postgres:// que te entrega tu hosting, que JDBC no entiende. El proveedor te da una URI; tú necesitas una URL JDBC. Estas son las plantillas para cada host:

  • Amazon RDS / Aurora PostgreSQL

    jdbc:postgresql://your-instance.region.rds.amazonaws.com:5432/dbname?ssl=true&sslmode=require

    Encuentra el host en RDS → Databases → tu instancia → Connectivity & security → Endpoint. Añade los rangos IP de Google a las inbound rules del security group, puerto 5432.

  • Supabase

    jdbc:postgresql://aws-0-region.pooler.supabase.com:6543/postgres?sslmode=require

    Usa el connection pooler (puerto 6543) para conexiones cortas de script, no el puerto directo 5432, el free tier de Supabase tiene un límite bajo de conexiones directas. Encuentra la cadena en Project Settings → Database → Connection pooling.

  • Neon

    jdbc:postgresql://ep-name-12345.region.aws.neon.tech:5432/dbname?sslmode=require

    Por defecto Neon está abierto a todas las IPs; si activaste el IP allow-list, añade los rangos IP de Google Apps Script o pínelo a las IPs específicas del connector. Usa la cadena pooled para Apps Script.

  • Google Cloud SQL for PostgreSQL

    jdbc:postgresql://PUBLIC-IP:5432/dbname?ssl=true&sslmode=require

    Cloud SQL Auth Proxy no funciona desde Apps Script. O usa la IP pública con Authorized Networks (añade las IPs salientes de Google), o pon un proxy Cloud Run delante.

  • Azure Database for PostgreSQL

    jdbc:postgresql://your-server.postgres.database.azure.com:5432/dbname?ssl=true&sslmode=require

    El formato del username es <user>@<server-name>, no solo <user>. Las firewall rules de Azure deben permitir las IPs del connector, o 'Allow access to Azure services' debe estar activado.

Método 2, psql o pg_dump → CSV → Sheets

La ruta manual. Desde la línea de comandos:

Shell
psql "$DATABASE_URL" -c "COPY (SELECT id, name, created_at FROM users WHERE created_at >= NOW() - INTERVAL '30 days') TO STDOUT WITH CSV HEADER" > users.csv

Luego File → Import en Sheets. Pros: Cero setup, gratis, funciona para cualquier complejidad de consulta. Contras: Solo snapshot, manual cada vez, requiere CLI con cliente Postgres.

Método 3, Postgres FDW o dblink para federación

Los foreign data wrappers nativos de Postgres (postgres_fdw) y dblink te permiten consultar otras bases Postgres desde una sesión Postgres. No es realmente una ruta de export a Sheets, es cómo escribirías consultas cross-database dentro de SQL, pero a veces aparece en estas búsquedas. Lo mencionamos por completitud; para realmente llevar resultados a Sheets sigues necesitando uno de los otros tres métodos.

Método 4, Un complemento de Google Sheets (Brooked)

Brooked es un complemento gratuito de Google Sheets diseñado para llevar datos Postgres (y otras 20+ fuentes) a tu spreadsheet con refresco programado, escritura bidireccional y un agente de IA que escribe el SQL por ti.

Brooked se conecta a:

  • Amazon RDS PostgreSQL y Aurora PostgreSQL
  • Supabase (cualquier proyecto)
  • Neon (cualquier branch)
  • Google Cloud SQL for PostgreSQL
  • Azure Database for PostgreSQL
  • Railway, Render, Fly.io managed Postgres
  • PostgreSQL self-hosted 12+

Paso 1, Instala Brooked

Instala Brooked desde el Google Workspace Marketplace. El free tier incluye 100 importaciones al mes con chat de IA, sin tarjeta de crédito.

Paso 2, Conecta tu base Postgres

Abre la barra lateral de Brooked y haz clic en Add data source → PostgreSQL. Elige el preset de proveedor (Supabase, Neon, RDS, Cloud SQL, Azure, o Custom) y Brooked solicita los campos correctos para ese proveedor. Por ejemplo, para Supabase: project ref, password, region. Para RDS: host, port, database, username, password, SSL mode.

Paso 3, Importa datos al sheet

Haz clic en New import, elige tu conexión Postgres, y selecciona una tabla o escribe una consulta SQL personalizada. Elige el rango destino y haz clic en Import. Activa Auto-refresh para mantenerlo sincronizado en cadencia de 15 minutos, horaria, diaria o semanal.

Sincronización bidireccional, escribir datos de vuelta a Postgres

Brooked soporta escritura bidireccional con modos INSERT, UPDATE, UPSERT (que compila a INSERT … ON CONFLICT DO UPDATE), y DELETE. Cada escritura queda en un audit log con el diff, el usuario y el timestamp. Crea un usuario brooked_writer con privilegios específicos en las tablas a las que vas a escribir.

Usar el agente de IA con Postgres

El agente introspecta tu schema, traduce preguntas en lenguaje natural a SQL válido, ejecuta sobre tu base en vivo, y entrega el resultado al sheet con métricas calculadas. Para análisis más sofisticado (cohortes, retención, análisis estadístico), el agente puede caer en sandbox de Python con pandas/numpy/scikit y devolver el resultado como rango del sheet.

BrookedBrooked AI, PostgreSQL
Live
Ask anything about your PostgreSQL data…

Solución de problemas

Veredicto: qué elegir según tu situación

  • Solo necesito este resultado de consulta una vez

    Elige: psql / pg_dump → CSV

    Por qué: Nativo, gratis, 30 segundos. La respuesta correcta para una extracción única donde el freshness no importa.

  • Quiero una sola consulta recurrente y escribo código

    Elige: Apps Script + JDBC

    Por qué: Gratis y personalizable, pero mantendrás el script y tendrás que cuidar el límite de 6 minutos para consultas grandes.

  • Quiero datos Postgres en vivo sin script

    Elige: Brooked

    Por qué: Editor SQL visual, refresco programado, escritura bidireccional, agente de IA, y los presets de proveedor (Supabase, Neon, Railway) manejan las particularidades de la cadena de conexión.

  • Quiero hacer preguntas a Postgres en lenguaje natural

    Elige: Brooked

    Por qué: El agente introspecta tu schema, escribe el SQL, lo ejecuta en tu base en vivo, lleva el resultado al sheet, y puede caer en sandbox de Python para trabajo de cohortes/retención/estadístico.

Preguntas frecuentes

  • ¿Cuál es la cadena de conexión JDBC correcta para Postgres en Apps Script?

    El error más común: copiar la URI 'postgres://' que tu proveedor te entrega. Apps Script JDBC no la entiende. Usa el prefijo 'jdbc:postgresql://' en su lugar. Ejemplo: jdbc:postgresql://host:5432/dbname?ssl=true&sslmode=require

  • ¿Funciona Brooked con Supabase, Neon, RDS y Railway?

    Sí. Brooked soporta cualquier endpoint del protocolo Postgres, RDS Postgres y Aurora Postgres, Supabase, Neon, Google Cloud SQL for PostgreSQL, Azure Database for PostgreSQL, Railway, Render, y Postgres self-hosted 12+. Los presets de proveedor manejan las particularidades (cadena del pooler de Supabase, formato de username de Azure, etc.).

  • ¿Cómo escribo datos de vuelta a Postgres desde el sheet?

    Brooked soporta escritura bidireccional con modos INSERT, UPDATE, UPSERT (que compila a INSERT … ON CONFLICT DO UPDATE), y DELETE. Crea un usuario brooked_writer con privilegios INSERT/UPDATE/DELETE en las tablas específicas. Cada escritura queda en un audit log con el diff, el usuario y el timestamp.

  • ¿Necesito saber SQL para usar Brooked con Postgres?

    No necesariamente. El agente de IA puede escribir el SQL por ti: introspecta tu schema, traduce tu pregunta en lenguaje natural a una consulta válida, la ejecuta, y trae el resultado al sheet.

  • ¿Postgres FDW y dblink son alternativas reales?

    Son útiles para queries cross-database dentro de Postgres mismo, pero no son una ruta de export a Sheets, siguen necesitando uno de los otros métodos para llegar al sheet final. Los mencionamos por completitud.

Conecta PostgreSQL a Sheets en menos de 5 minutos.

El free tier de Brooked cubre 100 importaciones al mes con chat de IA incluido, sin tarjeta de crédito. O consulta todos los detalles de la integración PostgreSQL.

Instala Brooked gratis →

Also in Database

More Database guides

Database

How to Connect MySQL to Google Sheets

Apps Script with JDBC, CSV exports, IMPORTDATA, and no-code add-ons compared, with the exact cloud-provider connection strings (RDS, PlanetScale, Cloud SQL, Azure), scheduled refresh, two-way write-back, and an AI agent that writes the SQL for you.

JW
James Whitfield
Read
Database

How to Connect SQL Server to Google Sheets

Import SQL Server query results into Google Sheets, schedule auto-refresh, and write data back, works with Azure SQL, Amazon RDS SQL Server, and self-hosted instances.

JW
James Whitfield
Read

Get your spreadsheet hours back

Brooked sets up in seconds. Your team is querying live data before lunch.

Get started free