Google Sheets est une solution de feuille de calcul dans le cloud qui permet de collaborer en temps réel et fournit des outils pour visualiser, traiter et communiquer des données.
L'exemple suivant montre comment écrire dans Sheets à partir d'un workflow. Le workflow interroge un ensemble de données BigQuery et écrit les résultats dans une feuille de calcul Sheets. Il utilise des connecteurs Workflows pour simplifier l'appel des API Google Cloud.
Avant de commencer
Avant d'essayer l'exemple de ce document, assurez-vous d'avoir effectué les opérations suivantes.
Activez les API Compute Engine, Google Drive, Google Sheets et Workflows.
Console
gcloud
gcloud services enable \ compute.googleapis.com \ drive.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
Notez le compte de service Compute Engine par défaut, car vous allez l'associer à l'exemple de workflow à des fins de test. Pour les nouveaux projets pour lesquels l'API Compute Engine est activée, ce compte de service est créé avec le rôle d'éditeur de base IAM et au format d'adresse e-mail suivant:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou le récupérer:
gcloud projects describe PROJECT_ID
Pour les environnements de production, nous vous recommandons vivement de créer un compte de service et de lui attribuer un ou plusieurs rôles IAM contenant les autorisations minimales requises conformément au principe du moindre privilège.
Créez un dossier dans Google Drive. Ce dossier permet de stocker votre feuille de calcul. En configurant une autorisation pour le dossier partagé, votre workflow est autorisé à écrire dans la feuille de calcul.
- Accédez à drive.google.com.
- Cliquez sur Nouveau > Nouveau dossier.
- Saisissez un nom pour le dossier.
- Cliquez sur Créer.
- Effectuez un clic droit sur votre nouveau dossier, puis sélectionnez Partager.
Ajoutez l'adresse e-mail du compte de service Compute Engine par défaut.
Cela donne au compte de service accès au dossier. Lorsque vous associez le compte de service à votre workflow, celui-ci dispose d'un accès en modification à tous les fichiers du dossier. En savoir plus sur le partage de fichiers, de dossiers et de Drive
Sélectionnez le rôle Rédacteur.
Décochez la case Envoyer une notification.
Cliquez sur Partager,
Créer une feuille de calcul
Vous pouvez créer une feuille de calcul de l'une des manières suivantes:
- Créer une feuille de calcul avec Google Sheets
- Créer une feuille de calcul à l'aide du connecteur de l'API Google Sheets
Il n'est pas possible de créer une feuille de calcul directement dans un dossier spécifié à l'aide de l'API Google Sheets. Toutefois, il existe d'autres options, comme déplacer la feuille de calcul dans un dossier spécifique après l'avoir créée, comme dans les exemples suivants. Pour en savoir plus, consultez la section Utiliser des dossiers Google Drive.
Créer une feuille de calcul à l'aide de Google Sheets
Lorsque vous créez une feuille de calcul via Google Sheets, elle est enregistrée dans Google Drive. Par défaut, la feuille de calcul est enregistrée dans votre dossier racine sur Drive.
Accédez à sheets.google.com.
Cliquez sur Nouveau .
La nouvelle feuille de calcul s'ouvre. Chaque feuille de calcul est associée à une valeur
spreadsheetId
unique, composée de lettres, de chiffres, de traits d'union ou de traits de soulignement. Vous trouverez l'identifiant de la feuille de calcul dans une URL Google Sheets:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0
Notez cet ID, car vous en aurez besoin lorsque vous créerez votre workflow.
Déplacez la feuille de calcul vers le dossier Google Drive que vous avez créé précédemment:
- Dans la feuille de calcul, sélectionnez Fichier > Déplacer.
- Accédez au dossier que vous avez créé.
- Cliquez sur Déplacer.
Créer une feuille de calcul à l'aide du connecteur de l'API Google Sheets
Vous pouvez utiliser le connecteur de l'API Google Sheets pour créer une feuille de calcul. Comme Workflows utilise le compte de service comme identité du déclencheur, la feuille de calcul est créée dans le dossier racine Google Drive du compte de service. Vous pouvez ensuite déplacer la feuille de calcul vers un autre dossier.
Dans le workflow suivant, le spreadsheetId
est extrait du résultat resp
:
YAML
JSON
Remplacez FOLDER_ID
par l'ID du dossier vers lequel vous souhaitez déplacer la feuille de calcul. Chaque dossier Drive possède un ID unique, composé de lettres, de chiffres, de traits d'union ou de traits de soulignement. Vous trouverez l'ID du dossier dans l'URL du dossier:
https://drive.google.com/drive/folders/FOLDER_ID/edit#gid=0
Pour en savoir plus, consultez la section Créer et renseigner des dossiers.
Le résultat du workflow devrait ressembler à ce qui suit, où la valeur id
est spreadsheetId
:
"body": { "id": "spreadsheetId", "kind": "drive#file", "mimeType": "application/vnd.google-apps.spreadsheet", "name": "Untitled spreadsheet" }
Explorer l'ensemble de données public BigQuery
BigQuery héberge un certain nombre d'ensembles de données publics que le grand public peut interroger.
Dans BigQuery, vous pouvez exécuter une tâche de requête interactive (à la demande). Par exemple, la requête suivante renvoie les 100 noms les plus populaires d'un ensemble de données spécifique et écrit la sortie dans une table temporaire. Il s'agit de la requête que votre workflow exécutera.
Console
Dans la console Google Cloud, accédez à la page BigQuery.
Saisissez la requête SQL BigQuery suivante dans la zone de texte de l'éditeur de requête:
SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100
Cliquez sur Exécuter.
bq
Dans le terminal, saisissez la commande bq query
suivante pour exécuter une requête interactive à l'aide de la syntaxe SQL standard:
bq query \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100'
Déployer un workflow qui écrit dans Sheets
Déployez un workflow qui interroge un ensemble de données BigQuery à l'aide du connecteur de l'API BigQuery et qui écrit les résultats dans une feuille de calcul Sheets à l'aide du connecteur de l'API Google Sheets.
Console
Dans la console Google Cloud, accédez à la page Workflows:
Cliquez sur
Créer.Saisissez un nom pour le nouveau workflow:
read-bigquery-write-sheets
.Dans la liste Région, sélectionnez us-central1 (Iowa).
Pour Compte de service, sélectionnez le compte de service Compute Engine par défaut (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Cliquez sur Suivant.
Dans l'éditeur de workflow, saisissez la définition suivante pour votre workflow:
Remplacez la valeur de l'espace réservé
sheetId
par votrespreadsheetId
.Cliquez sur Déployer.
gcloud
Créez un fichier de code source pour votre workflow:
touch read-bigquery-write-sheets.yaml
Dans un éditeur de texte, copiez le workflow suivant dans votre fichier de code source:
Remplacez la valeur de l'espace réservé
sheetId
par votrespreadsheetId
.Déployez le workflow en saisissant la commande suivante :
gcloud workflows deploy read-bigquery-write-sheets \ --source=read-bigquery-write-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Remplacez
PROJECT_NUMBER
par votre numéro de projet Google Cloud. Vous trouverez le numéro de votre projet sur la page Bienvenue de la console Google Cloud.
Exécuter le workflow et vérifier les résultats
L'exécution d'un workflow exécute la définition actuelle du workflow associé au workflow.
Exécutez le workflow comme suit :
Console
Dans Google Cloud Console, accédez à la page Workflows :
Sur la page Workflows (Workflows), sélectionnez le workflow read-bigquery-write-sheets pour accéder à sa page d'informations.
Sur la page Détails du workflow, cliquez sur play_arrow Exécuter.
Cliquez à nouveau sur Exécuter.
Affichez les résultats du workflow dans le volet Output (Résultat).
La sortie devrait ressembler à ce qui suit :
{ "spreadsheetId": "1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA", "updatedCells": 303, "updatedColumns": 3, "updatedRange": "Sheet1!A1:C101", "updatedRows": 101 }
gcloud
Ouvrez un terminal.
Exécutez le workflow :
gcloud workflows run read-bigquery-write-sheets
Les résultats de l'exécution doivent ressembler à ce qui suit:
Waiting for execution [4dcf737b-69d9-4081-b8d9-86d39ae86bd1] to complete...done. argument: 'null' duration: 3.131912897s endTime: '2023-01-25T14:59:46.818828242Z' name: projects/918619793306/locations/us-central1/workflows/read-bigquery-write-sheets/executions/4dcf737b-69d9-4081-b8d9-86d39ae86bd1 result: '{"spreadsheetId":"1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA","updatedCells":303,"updatedColumns":3,"updatedRange":"Sheet1!A1:C101","updatedRows":101}' startTime: '2023-01-25T14:59:43.686915345Z' state: SUCCEEDED
Vérifiez que le workflow a écrit les résultats de la requête dans votre feuille de calcul. Par exemple, le nombre de colonnes et de lignes de la feuille de calcul doit correspondre aux valeurs
updatedColumns
etupdatedRows
.
Étape suivante
- Déclencher un workflow à partir de Google Sheets
- Suspendre et reprendre un workflow à l'aide de rappels et de Google Sheets
- Explorez le centre de formation Google Workspace.