Pour une meilleure gestion des données, téléchargez vos données sur Mavibot Tables. Cela permettra à vos bots de fonctionner beaucoup plus rapidement et d'éviter les erreurs liées aux requêtes vers Google Sheets.

INFORMATIONS GÉNÉRALES

Comment préparer une feuille Google




Où trouver l'identifiant de la feuille de calcul

L'identifiant de la feuille de calcul se trouve dans l'URL (surligné en couleur, entre d/ et /edit) :

Comment travailler avec les lettres de colonnes

Si vous devez convertir une lettre de colonne en nombre, vous pouvez utiliser la fonction de calcul c2n. Pour convertir un nombre en lettre de colonne, utilisez n2c.

Vous pouvez également décaler les lettres de colonnes à l'aide de la fonction addCols. Le premier paramètre est une chaîne contenant la lettre de colonne, et le second paramètre est le décalage. Utilisez un décalage négatif pour vous déplacer vers la gauche.

Exemple :

Résultat :

Comment utiliser des variables dans les noms de colonnes

Vous pouvez utiliser une variable pour spécifier l'adresse d'une cellule à lire, puis utiliser la même variable pour récupérer la valeur correspondante dans la réponse et la stocker dans une variable.

Erreurs possibles

Si la feuille de calcul est au format .XLSX, l'intégration ne fonctionnera pas. Vous devez convertir le fichier au format Google Sheets.

Fonctions pour travailler avec Google Sheets

Fonctions Google Sheets

Pour des informations détaillées sur la connexion et l'utilisation de Google Sheets, voir ICI.

Chaque fonction accepte l'identifiant de la feuille de calcul sheet_id comme premier paramètre. Vous pouvez le trouver dans l'URL de votre Google Sheets (la partie en gras dans l'exemple ci-dessous).

https://docs.google.com/spreadsheets/d/1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYlc4/edit#gid=0

Pour plus de commodité, nous vous recommandons de stocker l'identifiant de la feuille de calcul dans une variable et de passer cette variable aux fonctions.

Toutes les fonctions décrites ci-dessous renvoient un dictionnaire contenant le résultat de l'opération. Ce dictionnaire inclut toujours le paramètre status, qui est true si l'opération réussit et false si une erreur se produit.

Si status est true, la réponse peut contenir des paramètres supplémentaires qui peuvent être récupérés à l'aide de la fonction get().

Si status est false, la réponse contient un paramètre err avec une description de l'erreur.

Si vous devez travailler avec une feuille de calcul autre que la première, vous pouvez passer un paramètre supplémentaire : worksheet_name_or_id_or_index.

Chaque fonction accepte ce paramètre, qui identifie la feuille de calcul par son nom, son ID ou son index.

Dictionnaire — certaines fonctions acceptent un dictionnaire contenant un ensemble spécifique de données. Il y a plusieurs règles à suivre :

  • Le dictionnaire entier doit être entre guillemets simples : '{}'.
  • Les clés et valeurs du dictionnaire (texte ou variables) doivent être entre guillemets doubles : '{"key": "value", "key2": "#{email}"}'.

Comment utiliser votre propre compte Google

Par défaut, le constructeur MaviBot utilise ses propres comptes de service pour accéder à vos feuilles de calcul. Par conséquent, vous devez accorder un accès en modification à vos feuilles de calcul via un lien.

Pour une meilleure sécurité, vous pouvez utiliser vos propres identifiants d'authentification et clés de compte de service.

Google Sheets a des limites sur le nombre de requêtes pouvant être effectuées dans une certaine période. Pour éviter de dépendre des limites des comptes de service partagés, vous pouvez utiliser votre propre compte.

Pour ce faire, allez dans les paramètres de votre projet, ouvrez Constantes du projet, et ajoutez une variable nommée sheet_json_keys contenant un tableau de vos clés.

Le tableau peut contenir soit des clés JSON copiées depuis des fichiers, soit des URL pointant vers des fichiers de clés.

Clé JSON depuis un fichier : Obtenez le fichier de clé (les instructions sont fournies ci-dessous), ouvrez-le dans n'importe quel éditeur de texte, copiez son contenu et ajoutez-le au tableau.

URL d'un fichier de clé : Le moyen le plus simple d'obtenir une telle URL est de télécharger le fichier dans le constructeur MaviBot.

Pour ce faire :

  1. Créez un bloc qui n'est pas un bloc d'état.
  2. Téléchargez le fichier contenant les identifiants du compte de service dans les pièces jointes du bloc.
  3. Faites un clic droit sur le nom du fichier téléchargé.
  4. Sélectionnez Copier l'adresse du lien.

Quatre exemples de la variable sheet_json_keys :

1. Un tableau contenant deux URL de fichiers de clés :

["URL du fichier de clé", "URL du deuxième fichier de clé"]

2. Un tableau contenant deux URL et deux clés JSON :

["URL du fichier de clé", "URL du deuxième fichier de clé", {clé JSON depuis un fichier}, {clé JSON depuis un fichier}]

3. Un tableau contenant une clé JSON :

[{clé JSON depuis un fichier}]

(La clé affichée dans la capture d'écran est raccourcie. La clé réelle est significativement plus longue.)

4. Un tableau contenant une URL de fichier de clé :

["URL du fichier de clé"]

Ajoutez les clés dans Constantes du projet.

Vous n'avez pas besoin de passer un paramètre supplémentaire lors de l'appel des fonctions de calcul. Les clés seront chargées automatiquement.

Si la variable sheet_json_keys contient plusieurs comptes de service, vous devez configurer les autorisations d'accès à Google Sheets pour TOUS LES COMPTES DE SERVICE spécifiés dans la variable.

Pour plus d'informations sur l'utilisation de votre propre compte Google avec Google Sheets et l'obtention de clés de compte de service, consultez l'article de documentation pertinent.

Comment créer une nouvelle feuille de calcul depuis MaviBot

MaviBot prend en charge la création de nouvelles feuilles de calcul Google Sheets.

Pour utiliser cette fonctionnalité, vous devez configurer la variable sheet_json_keys. Les instructions pour créer cette variable sont disponibles ici.

Fonction pour créer une feuille de calcul :

sheet_create_spreadsheet(new_worksheet_title, google_email)

Paramètres :

  • new_worksheet_title — le nom de la nouvelle feuille de calcul Google Sheets.
  • google_email — l'adresse e-mail de votre compte Google.

Le paramètre google_email est requis pour accorder des autorisations d'éditeur pour la feuille de calcul nouvellement créée à l'adresse e-mail spécifiée.

Google attribue automatiquement la propriété de la feuille de calcul au projet Google que vous avez précédemment enregistré.

Malheureusement, c'est actuellement la seule méthode disponible pour créer des feuilles de calcul Google Sheets via l'API.

Exemple :

new = sheet_create_spreadsheet('ЧЕМОДАНчик', '[email protected]')

Après avoir actualisé la page Google Sheets dans votre compte, vous trouverez la feuille de calcul nouvellement créée :

Une variable nommée google_spreadsheet_id apparaîtra dans la liste des variables client. Elle contiendra l'ID de la feuille de calcul nouvellement créée.

Si la requête est terminée avec succès, la fonction renvoie un dictionnaire contenant le statut et une notification :

{'status': True, 'message': "Google worksheet 'ЧЕМОДАНчик' is created"}
  • status — le résultat de l'opération.
  • result — le message de l'opération.

Si une erreur se produit, la fonction renvoie false comme statut avec une description de l'erreur.

Comment ajouter une nouvelle feuille de calcul à une feuille de calcul Google Sheets

Utilisez la fonction suivante :

sheet_create_worksheet(sheet_id, list_name, cols=None, rows=None)

La fonction renvoie un dictionnaire contenant l'ID de la feuille de calcul nouvellement créée et un statut true :

{"status":true,"list_id":1063146761}

Si une erreur se produit, la fonction renvoie un statut false et une description de l'erreur :

{"status":false,"err":"Erreur ou description"}

Exemple :

result = sheet_create_worksheet('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', "Nouvelle liste")

status = get(result, 'status')

Ajout d'une nouvelle feuille de calcul à Google Sheets

Comment supprimer une feuille de calcul dans Google Sheets

Pour supprimer une feuille de calcul, utilisez la fonction suivante :

sheet_delete_worksheet(sheet_id, worksheet_name_or_index)

Paramètres :

  • sheet_id — l'ID de votre feuille de calcul Google Sheets.
  • worksheet_name_or_id_or_index — le nom ou l'ID de la feuille de calcul que vous souhaitez supprimer.

Exemple :

deleted_sfh = sheet_delete_worksheet('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ', 'Лист14')

La fonction renvoie une réponse telle que :

{"status":true,"result":"worksheet Лист14 is deleted"}

Si une erreur se produit, la fonction renvoie une description de l'erreur.

Comment obtenir le nombre de feuilles de calcul dans Google Sheets

Pour obtenir le nombre total de feuilles de calcul et une liste des paires index–nom de feuille de calcul, utilisez la fonction suivante :

sheet_worksheet_indexes(sheet_id)

  • sheet_id — l'ID de votre feuille de calcul Google Sheets.

Exemple :

worksheet_indexes = sheet_worksheet_indexes('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ')

La fonction renvoie une réponse telle que :

{
  "status": true,
  "worksheets_count": 10,
  "worksheet_titles": {
    "1": "Лист1",
    "2": "Лист2",
    "3": "cvtyf",
    "4": "Лист4",
    "5": "о да",
    "6": "Это новый лист",
    "7": "вль и я",
    "8": "таракан",
    "9": "чемодан",
    "10": "БАЗА ДАННЫХ"
  }
}

Si une erreur se produit, la fonction renvoie une description de l'erreur.

Comment renommer une feuille de calcul dans Google Sheets

Pour renommer une feuille de calcul, utilisez la fonction suivante :

sheet_rename_worksheet(sheet_id, worksheet_name_or_index, new_tile)

Paramètres :

  • sheet_id — l'ID de votre feuille de calcul Google Sheets.
  • worksheet_name_or_id_or_index — le nom ou l'ID de la feuille de calcul que vous souhaitez renommer.
  • new_tile — le nouveau nom de la feuille de calcul.

Exemple :

worksheet_title_change = sheet_rename_worksheet('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ', 'Лист5', 'о да')

Comment écrire des données ligne par ligne dans des colonnes spécifiques

Vous pouvez collecter plusieurs données d'un utilisateur et les écrire dans la première ligne disponible d'une feuille de calcul.

La feuille de calcul doit avoir une ligne d'en-tête. Au moins une cellule de la première ligne doit contenir une valeur.

Utilisez la fonction suivante :

sheet_mapping_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

Paramètres :

  • sheet_id — l'identifiant de votre feuille de calcul Google Sheets.
  • cell_data — un dictionnaire contenant les données à écrire, par exemple : '{"A": "valeur", "D": "#{email}"}', où chaque clé représente une lettre de colonne.
  • worksheet_name_or_id_or_index — un paramètre facultatif spécifiant le nom, l'index ou l'identifiant de la feuille de calcul.

Si la requête réussit, la fonction renvoie un dictionnaire tel que :

{"status":true,"number_row":14}

Vous pouvez enregistrer la valeur number_row et l'utiliser dans des opérations ultérieures.

Exemple :

result = sheet_mapping_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '{"a":"aaaaa", "B": "#{email}"}')

status = get(result, 'status')

number_row = get(result, 'number_row')

Exemple avec un identifiant de feuille de calcul :

list_name = 'Рейтинг'

result = sheet_mapping_cells('#{gsheet_id}', '{"a":"#{client_id}", "B": "#{ball}"}', '#{list_name}')

Comment écrire des données dans la première ligne vide

Vous pouvez collecter plusieurs données d'un utilisateur et les écrire dans la première ligne vide d'une feuille de calcul.

Cette fonction fonctionne de manière similaire à sheet_mapping_cells, mais ajoute de nouvelles lignes lorsque la fin de la feuille de calcul est atteinte.

Notez que cette méthode n'écrit pas nécessairement les données en bas de la feuille de calcul. Elle écrit dans la première ligne vide.

Elle est mieux adaptée pour ajouter continuellement des données dans les mêmes colonnes.

Utilisez la fonction suivante :

sheet_append_row(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

Paramètres :

  • sheet_id — l'identifiant de votre feuille de calcul Google Sheets.
  • cell_data — un dictionnaire contenant les données à écrire, par exemple : '{"A": "valeur", "D": "#{email}"}', où chaque clé représente une lettre de colonne.
  • worksheet_name_or_id_or_index — un paramètre facultatif spécifiant le nom, l'index ou l'identifiant de la feuille de calcul.

Si la requête réussit, la fonction renvoie un dictionnaire tel que :

{"status":true,"number_row":14}

Vous pouvez enregistrer la valeur number_row pour une utilisation future.

Exemple :

result = sheet_append_row('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '{"a":"aaaaa", "B": "#{email}"}')

status = result["status"]

number_row = result["number_row"]

Exemple avec un identifiant de feuille de calcul :

list_name = 'результаты викторины'
gs_id = '12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT'

result = sheet_append_row(gs_id, '{"a":"#{client_id}", "B": "#{ball}"}', list_name)

Comment écrire des données dans des cellules spécifiques

Utilisez la fonction suivante :

sheet_write_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

Paramètres :

  • sheet_id — l'identifiant de votre feuille de calcul Google Sheets.
  • cell_data — un dictionnaire contenant les adresses de cellules et les valeurs, par exemple : '{"A1": "valeur", "D4": "#{email}"}'. Chaque clé se compose d'une lettre de colonne et d'un numéro de ligne.
  • worksheet_name_or_id_or_index — un paramètre facultatif spécifiant le nom, l'index (à partir de 1) ou l'identifiant de la feuille de calcul.

Exemple de cell_data :

'{"a1":"#{переменная}", "b3":"#{переменная}", "c1":"12545", "d20":"просто текст"}'

Les données sont écrites dans les cellules exactes que vous spécifiez. Dans cet exemple, ces cellules sont a1, b3, c1 et d20.

Si la requête réussit, la fonction renvoie :

{"status":true}

Si une erreur se produit, la fonction renvoie une description de l'erreur :

{"status":false,"err":"Erreur ou description"}

Exemple de sheet_write_cells :

Avec l'identifiant de feuille de calcul 123456789 :

result = sheet_write_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a3", "b3": "#{email}"}', '123456789')

Sans spécifier de feuille de calcul :

result = sheet_write_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a3", "b3": "#{email}"}')

status = get(result, 'status')

Comment effacer des cellules spécifiques

Utilisez la fonction suivante :

sheet_remove_cells(sheet_id, cell_list, worksheet_name_or_id_or_index=None)

Paramètres :

  • sheet_id — l'identifiant de votre feuille de calcul Google Sheets.
  • cell_list — un tableau d'adresses de cellules, par exemple : '["A1", "D4"]', où chaque adresse contient une lettre de colonne et un numéro de ligne.
  • worksheet_name_or_id_or_index — un paramètre facultatif spécifiant le nom, l'index (à partir de 1) ou l'identifiant de la feuille de calcul.

Si la requête réussit, la fonction renvoie :

{"status":true}

Si une erreur se produit, la fonction renvoie :

{"status":false,"err":"Erreur ou description"}

Exemple :

Avec l'identifiant de feuille de calcul 123456789 :

result = sheet_remove_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '["a1", "b3", "c2"]', '123456789')

Sans spécifier de feuille de calcul :

result = sheet_remove_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '["a1", "b3", "c2"]')

status = get(result, 'status')

La fonction efface les valeurs dans les cellules spécifiées : a1, b3 et c2.

La numérotation des colonnes commence à 1.

Comment écrire des données dans la première cellule vide d'une ligne

Vous pouvez écrire des données dans une ligne spécifiée. La valeur sera placée dans la première cellule vide à droite de la dernière cellule remplie.

Utilisez la fonction suivante :

sheet_append_cell_in_row(sheet_id, row, value, worksheet_name_or_index=None)

Paramètres :

  • sheet_id — l'identifiant de votre feuille de calcul Google Sheets.
  • row — le numéro de la ligne où la valeur sera écrite.
  • value — la valeur à écrire dans la cellule.
  • worksheet_name_or_id_or_index — un paramètre facultatif spécifiant le nom, l'index (à partir de 1) ou l'identifiant de la feuille de calcul.

Si la requête réussit, la fonction renvoie une réponse telle que :

{"status":true,"number_col":10,"col_name":"J3"}

Vous pouvez enregistrer ces valeurs pour une utilisation future.

Si une erreur se produit, la fonction renvoie un dictionnaire avec un statut false et une description de l'erreur :

{"status":false,"err":"Valeur d'erreur"}

Exemple :

Écrire une valeur dans une cellule vide de la première ligne :

result = sheet_append_cell_in_row('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', 1, "Значение")

Comment lire des données à partir d'une feuille de calcul

Utilisez la fonction suivante :

sheet_read_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

Paramètres :

  • sheet_id — l'identifiant de votre feuille de calcul Google Sheets.
  • cell_data — un dictionnaire spécifiant les plages de cellules à lire.
  • worksheet_name_or_id_or_index — un paramètre facultatif spécifiant le nom, l'index (à partir de 1) ou l'identifiant de la feuille de calcul.

Exemple de cell_data :

'{"a1":"a1", "a3":"b4", "c1":"c3"}'

Dans cet exemple :

  • "a1":"a1" renvoie la valeur d'une seule cellule.
  • "c1":"c3" renvoie trois valeurs de la colonne C.

Si la requête réussit, la fonction renvoie un dictionnaire contenant le statut et toutes les valeurs de cellules demandées :

{
  "status": true,
  "A1": "valeur",
  "A3": "valeur",
  "B3": "valeur",
  "A4": "valeur",
  "B4": "valeur",
  "C1": "",
  "C2": "valeur",
  "C3": "ddddddd"
}

Si une erreur se produit, la fonction renvoie :

{"status":false,"err":"Erreur ou description"}

Exemple :

Avec l'identifiant de feuille de calcul 123456789 :

result = sheet_read_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a1", "a3": "b4", "c1": "c3"}', '123456789')

Sans spécifier de feuille de calcul :

result = sheet_read_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a1", "a3": "b4", "c1": "c3"}')

status = get(result, 'status')

Comment effacer une plage de cellules

Utilisez la fonction suivante :

sheet_remove_range(sheet_id, del_range, worksheet_name_or_id_or_index=None)

Paramètres :

  • sheet_id — l'identifiant de votre feuille de calcul Google Sheets.
  • del_range — la plage de cellules à effacer, spécifiée au format "A1:B2".
  • worksheet_name_or_id_or_index — un paramètre facultatif spécifiant le nom, l'index (à partir de 1) ou l'identifiant de la feuille de calcul.

Si la requête réussit, la fonction renvoie :

{"status":true}

Si une erreur se produit, la fonction renvoie :

{"status":false,"err":"Erreur ou description"}

Exemple :

Effacer les cellules A1, B1, A2 et B2 sur la première feuille de calcul :

result = sheet_remove_range('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', 'A1:B2')