Exécuter SQL dans Google Sheets sans écrire de script JDBC Apps Script
Le service JDBC d'Apps Script fonctionne, et cette page vous en présente la version transparente : le code, la limite de six minutes, les plages d'adresses IP et le mot de passe dans le script. Elle vous montre ensuite une autre approche : un petit agent installé à côté de votre base de données exécute la requête SQL, et une extension Google Sheets importe les données dans votre feuille de calcul. Aucun JavaScript, aucune modification du pare-feu : tout est inclus dans la version gratuite.
Si vous souhaitez toujours utiliser Apps Script JDBC, voici la version honnête.
Google Service JDBC Permet de connecter Apps Script à MySQL, Google Cloud SQL pour MySQL, PostgreSQL, Microsoft SQL Server et Oracle. Le plus petit script fonctionnel qui remplit une feuille de calcul ressemble à ceci :
fonction charger les clients() { const propriétés = Services de propriétés.obtenirScriptPropriétés(); // Ne pas inclure le mot de passe dans le code const conn = Jdbc.obtenirConnection('jdbc:mysql://db.example.com:3306/sales', accessoires.obtenirPropriété('DB_USER'), accessoires.obtenirPropriété('DB_PASS')); const rs = conn.créer une déclaration().exécuterRequête('SELECT customer_id, name, city FROM customers LIMIT 1000'); const lignes = []; alors que (rs.suivant()) lignes.pousser([rs.obtenirString(1), rs.obtenirString(2), rs.obtenirString(3)]); rs.fermer(); conn.fermer(); const feuille = Application de feuille de calcul.obtenirActiveSpreadsheet().obtenirFeuilleParNom('Clients'); feuille.effacer le contenu(); feuille.obtenirRange(1, 1, lignes.longueur, 3).définir les valeurs(lignes); }
Cet exemple utilise MySQL. Pour les autres moteurs, seule la chaîne de connexion change : jdbc:postgresql://, jdbc:sqlserver:// et jdbc:oracle:thin:@ suivent la même forme, et Cloud SQL utilise jdbc:google:mysql://Avant cela, votre base de données doit accepter les connexions des serveurs de Google. Google publie les plages d'adresses sous forme de fichier JSON que vous ajoutez à votre pare-feu de base de données et que vous maintenez à jour, et la base de données doit écouter sur un port 1025 ou supérieur. Les limites qui posent problème en pratique proviennent de Google. page des quotas:
| Limite | Compte Google personnel | Compte Google Workspace |
|---|---|---|
| Durée d'exécution du script, par exécution | 6 minutes | 6 minutes |
| Exécution de fonction personnalisée (une formule qui appelle JDBC) | 30 secondes | 30 secondes |
| connexions JDBC par jour | 10,000 | 50,000 |
| Exécutions simultanées par utilisateur | 30 | 30 |
| Déclencheurs temporels, durée d'exécution totale par jour | 90 minutes | 6 heures |
L'exemple ci-dessus masque deux choses. Les exemples de Google eux-mêmes transmettent le nom d'utilisateur et le mot de passe en clair dans le code, et la plupart des scripts en circulation les copient. L'astuce des propriétés du script les empêche d'apparaître dans le code source, mais toute personne ayant accès au script peut toujours les lire. De plus, chaque ligne doit tenir dans la mémoire du script et le traitement doit être terminé en moins de six minutes. Par conséquent, une requête lente ou une table volumineuse implique de découper le travail manuellement. Si votre table est petite, que votre base de données est déjà accessible depuis Internet et qu'un seul développeur est responsable du script, JDBC convient parfaitement. La suite de cette page s'adresse à tous les autres utilisateurs.
Ce que vous obtiendrez à la place
Une feuille Google Sheets qui contient le résultat d'une requête SQL sur votre base de données, avec un Exécuter une requête Un bouton dans le panneau latéral permet d'afficher les dernières lignes à tout moment. Par exemple :
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | numéro de client | prénom | nom de famille | pays | total |
| 2 | 1042 | Marie | Alvarez | USA | 1,284.50 |
| 3 | 1043 | Daniel | Okafor | USA | 612.00 |
| 4 | 1047 | Priya | Nair | USA | 2,090.75 |
| 5 | 1051 | Thomas | Berg | USA | 338.20 |
| 6 | 1056 | Lucía | Ferreira | USA | 1,455.00 |
| 7 | 1060 | Kenji | Sato | USA | 874.10 |
| 8 |
En direct de votre base de donnéesLa différence réside dans l'endroit où la requête est exécutée. Avec JDBC, les serveurs de Google établissent une connexion à votre base de données ; votre pare-feu doit donc autoriser cette connexion et le script doit contenir le mot de passe. Avec Query Streams, un petit programme appelé Agent s'exécute sur un ordinateur ayant déjà accès à la base de données, établit une connexion sortante vers Query Streams et y exécute la requête SQL. L'extension Google Sheets demande les lignes et seules ces lignes sont transmises. Aucune connexion n'est ouverte au niveau de votre pare-feu et le mot de passe ne quitte jamais l'Agent.
Ce dont vous aurez besoin
Un compte Query Streams
Le forfait gratuit suffit pour ce guide. Inscrivez-vous sur mon.querystreams.com.
L'agent installé sur un ordinateur pouvant accéder au serveur
Un petit programme qui s'exécute en arrière-plan et interroge la base de données lorsque Google Sheets le demande. Il s'agit généralement du serveur de base de données lui-même, ou de tout ordinateur toujours allumé sur le même réseau.
Vos propres informations de connexion
Le nom du serveur, le nom de la base de données, ainsi qu'un nom d'utilisateur et un mot de passe permettant d'y accéder. Si la base de données est gérée par une autre personne, c'est à elle qu'il faut demander ces informations.
Quel ordinateur reçoit l'agent ? Toute machine toujours allumée qui peut déjà accéder à votre propre base de données, souvent le serveur de base de données lui-même ou un ordinateur sur le même réseau. Google Sheets peut être partout; il s'exécute dans votre navigateur.
Configurez-le en quatre étapes
-
Créez votre compte
Aller à mon.querystreams.com et inscrivez-vous avec le compte Google que vous utilisez pour Sheets. Choisissez le Gratuit Il s'agit d'un véritable plan, et non d'un essai, qui couvre deux connexions et des requêtes SQL ad hoc depuis Google Sheets.
Installez l'agent sur un ordinateur pouvant accéder au serveur.



Connectez-vous, ouvrez TéléchargerInstallez ensuite l'agent sur une machine ayant déjà accès à votre base de données : généralement le serveur de base de données lui-même, ou tout ordinateur toujours allumé sur le même réseau. L'installation prend une minute et l'agent s'exécute ensuite automatiquement.
Pourquoi un petit programme plutôt qu'un pilote ? L'agent s'installe en une seule étape sur Windows, Mac ou Linux (environ 85 Mo sur Windows, un peu plus de 100 Mo sur Mac et Linux) et fonctionne discrètement en arrière-plan. Il établit une connexion sortante chiffrée avec Query Streams, comme le ferait un navigateur ; vous n'avez donc pas besoin d'ouvrir de port dans votre pare-feu ni de configurer de VPN. Votre base de données reste sur votre réseau et les données sont accessibles où que vous soyez, via Internet si nécessaire. Seul le module complémentaire est requis de votre côté.
La page de téléchargement affiche Votre clé d'accèsCollez-le dans l'Agent lorsqu'il vous le demande, et attendez que le badge affiche Connecté aux flux de requêtesC'est la seule chose que vous devez faire sur l'Agent lui-même.
Des guides complets sont disponibles si vous le souhaitez : Fenêtres, Mac, Linux.
-
Ajoutez votre connexion à la base de données
Dans le portail ouvert Données → Agents de données, cliquez Ajouter un connecteur Sur votre agent, choisissez le type de base de données et renseignez l'hôte, le port, la base de données et un identifiant de connexion en lecture seule. Cliquez Test de connexion, puis ÉconomiserLa connexion atteint l'agent en quelques secondes. Chaque base de données possède son propre guide détaillant les champs exacts : MySQL, PostgreSQL, Serveur SQL, OracleLes bases de données Cloud SQL, Amazon RDS et Azure se connectent de la même manière ; l’agent doit simplement pouvoir y accéder.
Aucune liste blanche d'adresses IP. L'agent se connecte à votre base de données depuis votre réseau interne et interroge les flux sortants via HTTPS. Aucune liste d'adresses Google à ajouter au pare-feu ni aucune configuration à gérer n'est requise.
-
Exécutez la requête SQL depuis Google Sheets
Ouvrez votre feuille de calcul et installer l'extension Query Streams Téléchargez-le depuis Google Workspace Marketplace si vous ne l'avez pas encore fait. Il reconnaît le compte Google avec lequel vous êtes déjà connecté ; aucune connexion supplémentaire n'est requise. Dans le panneau latéral, cliquez sur Flux de requêtes, sélectionnez votre connexion et collez la même requête SELECT que celle que vous auriez utilisée dans le script :
Exemple · SQLSELECTIONNER identifiant_client, nom, ville DE clients COMMANDE PAR nom LIMITE 1000;
Choisissez l'onglet sous Fiche de destination et cliquez Exécuter une requêteLes lignes se placent sous vos en-têtes de colonnes. Cliquez Exécuter une requête Vous pouvez le faire à nouveau chaque fois que vous souhaitez obtenir les données les plus récentes. Pour que la feuille s'actualise automatiquement, enregistrez la requête dans le Générateur de requêtes et configurez un Automatisation, qui l'exécute selon une fréquence allant de toutes les cinq minutes à une fois par semaine.
C'est ça. Vos données sont dans la feuille et restent à jour en un clic. Seules les lignes que vous avez demandées ont quitté votre réseau.
Côté à côte, seul ce qui tient la route
| Applications JDBC | Flux de requêtes | |
|---|---|---|
| Ce que vous écrivez | JavaScript autour de votre SQL | Le SQL |
| Où la requête s'exécute | Sur les serveurs de Google, connexion à votre base de données | Sur l'agent, à côté de votre base de données |
| Mot de passe de la base de données | Dans le script ou ses propriétés, lisibles par toute personne pouvant le modifier | Uniquement visible par l'agent ; les utilisateurs de Sheets ne le voient jamais. |
| Pare-feu | Autoriser les plages d'adresses publiées par Google, port 1025 ou supérieur | Aucune connexion entrante ; l'agent se connecte via HTTPS. |
| limite de temps | 6 minutes par exécution, 30 secondes pour une fonction personnalisée | Aucun script ne risque d'expirer ; l'agent exécute la requête et diffuse les lignes. |
| Quotas | 10 000 ou 50 000 connexions JDBC par jour, 90 minutes ou 6 heures de délai de déclenchement | Un forfait de données mensuel par abonnement, à partir de 5 Mo avec l'offre gratuite. |
| Fournir les données à un collègue | Copiez le script et les identifiants qui l'accompagnent. | Partagez les résultats de la requête ; le destinataire l'exécute et ne voit jamais l'identifiant. |
| Actualiser selon un calendrier | Déclencheur temporel à l'intérieur du quota d'exécution quotidien | Automatisation, toutes les 5 minutes à hebdomadaire |
| Bases de données | MySQL, Cloud SQL, PostgreSQL, SQL Server, Oracle | Ces cinq bases de données, auxquelles s'ajoutent MariaDB, Snowflake, BigQuery, SQLite, Access, DuckDB, des dossiers de fichiers et des API telles que Stripe, HubSpot et Shopify, sont également incluses. |
Ce que les plans permettent
L'exécution de requêtes SQL ad hoc via l'extension Google Sheets est incluse dans tous les forfaits, y compris le forfait gratuit. Ce dernier comprend deux connexions et un quota mensuel de 5 Mo de résultats, suffisant pour une table comme celle présentée ci-dessus, mise à jour plusieurs fois par jour. L'exécution des requêtes enregistrées dans Query Builder de l'extension est disponible à partir du forfait Personal Core ; les requêtes partagées par un collègue sont compatibles avec tous les forfaits. Consultez la page des prix pour les indemnités prévues par le régime.
La gratuité est un plan que vous conservez. Il ne s'agit pas d'une période d'essai limitée dans le temps. Consultez la description détaillée sur le site web. page de tarification.
Questions que se posent les gens
Puis-je conserver mon script Apps Script existant et simplement corriger le problème de mot de passe ?
Oui. Déplacez le nom d'utilisateur et le mot de passe dans les propriétés du script, comme dans l'exemple ci-dessus, et accordez à la base de données des droits de lecture seule. Cela résout la majeure partie du problème. Cela ne modifie pas la limite de six minutes, le quota de connexions quotidien ni la liste blanche du pare-feu ; c'est pourquoi la plupart des utilisateurs déplacent la requête hors d'Apps Script dès lors que la feuille de calcul est utilisée par plusieurs personnes.
L'agent doit-il être exécuté sur le serveur de base de données ?
Non. N'importe quel ordinateur toujours allumé et pouvant accéder à la base de données convient : un poste de travail au bureau, une petite machine virtuelle ou le serveur lui-même. Seule une connexion HTTPS sortante vers Query Streams est nécessaire.
Existe-t-il une limite de lignes comme le plafond de mémoire de JDBC ?
L'agent traite les lignes en continu plutôt que de stocker le résultat complet dans un script. Les limites pratiques sont donc celles de votre forfait de données et de Google Sheets lui-même, qui plafonne une feuille de calcul à 20 millions de cellules (10 millions pour les comptes non encore couverts par le déploiement de Google en septembre 2026). Limitez la requête SELECT aux colonnes et à la plage de dates nécessaires pour une utilisation optimale.
J'utilise Cloud SQL. Est-ce que cela change quelque chose ?
Uniquement sur l'ordinateur ou la machine virtuelle où l'agent est exécuté. Installez-le sur un ordinateur ou une machine virtuelle pouvant accéder à l'instance Cloud SQL, soit via son adresse publique (l'adresse de l'agent étant autorisée), soit au sein du même réseau, et connectez-le en tant que MySQL, PostgreSQL ou SQL Server. Aucune plage d'adresses Google n'est à gérer.
Ma base de données doit-elle obligatoirement se trouver sur l'ordinateur sur lequel j'utilise Sheets ?
Non. Seul l'agent doit se trouver au même emplacement que votre base de données. Google Sheets fonctionne dans votre navigateur, sur n'importe quel appareil. Ouvrez l'extension avec le même compte Google et vos connexions seront disponibles.
Mes données sont-elles copiées dans Query Streams ?
Non. L'agent exécute la requête à l'endroit où se trouvent vos données et n'envoie que les lignes renvoyées. Aucune donnée n'est synchronisée ni stockée entre-temps.
Le forfait gratuit couvre-t-il vraiment cela ?
Oui. L'offre gratuite est un abonnement permanent, et non une période d'essai. Consultez les détails sur son contenu. page de tarification.
La feuille de calcul se met-elle à jour automatiquement ?
Cliquez à nouveau sur « Exécuter la requête » pour afficher les dernières lignes. Pour une feuille qui s'actualise automatiquement, configurez une automatisation dans le portail Query Streams (Flux → Automatisation). Cette fonctionnalité est incluse dans tous les abonnements.
Guides associés
Setup trouble?
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

