Für eine bessere Datenverarbeitung laden Sie Ihre Daten in Mavibot Tables hoch. Dadurch können Ihre Bots viel schneller arbeiten und Fehler im Zusammenhang mit Anfragen an Google Sheets werden vermieden.
- So bereiten Sie ein Google Sheet vor
- Wo Sie die Tabellen-ID finden
- So arbeiten Sie mit Spaltenbuchstaben
- So verwenden Sie Variablen in Spaltennamen
- Mögliche Fehler
- Funktionen für die Arbeit mit Google Sheets
ALLGEMEINE INFORMATIONEN
So bereiten Sie ein Google Sheet vor




Wo Sie die Tabellen-ID finden
Die Tabellen-ID befindet sich in der URL (farbig hervorgehoben, zwischen d/ und /edit):

So arbeiten Sie mit Spaltenbuchstaben
Wenn Sie einen Spaltenbuchstaben in eine Zahl umwandeln müssen, können Sie die Rechnerfunktion c2n verwenden. Um eine Zahl in einen Spaltenbuchstaben umzuwandeln, verwenden Sie n2c.
Sie können Spaltenbuchstaben auch mit der Funktion addCols verschieben. Der erste Parameter ist eine Zeichenfolge, die den Spaltenbuchstaben enthält, und der zweite Parameter ist der Offset. Verwenden Sie einen negativen Offset, um nach links zu verschieben.
Beispiel:

Ergebnis:

So verwenden Sie Variablen in Spaltennamen
Sie können eine Variable verwenden, um die Adresse einer Zelle anzugeben, aus der gelesen werden soll, und dann dieselbe Variable verwenden, um den entsprechenden Wert aus der Antwort abzurufen und in einer Variablen zu speichern.


Mögliche Fehler
Wenn die Tabelle im Format .XLSX vorliegt, funktioniert die Integration nicht. Sie müssen die Datei in das Google-Sheets-Format konvertieren.

Funktionen für die Arbeit mit Google Sheets
Google-Sheets-Funktionen
Detaillierte Informationen zum Verbinden und Verwenden von Google Sheets finden Sie HIER.
Jede Funktion akzeptiert die Tabellenkennung sheet_id als ersten Parameter. Sie finden sie in Ihrer Google-Sheets-URL (der Teil, der im folgenden Beispiel fett hervorgehoben ist).
https://docs.google.com/spreadsheets/d/1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYlc4/edit#gid=0
Zur Vereinfachung empfehlen wir, die Tabellen-ID in einer Variablen zu speichern und diese Variable an die Funktionen zu übergeben.
Alle unten beschriebenen Funktionen geben ein Wörterbuch zurück, das das Ergebnis der Operation enthält. Dieses Wörterbuch enthält immer den Parameter status, der true ist, wenn die Operation erfolgreich ist, und false, wenn ein Fehler auftritt.
Wenn status true ist, kann die Antwort zusätzliche Parameter enthalten, die mit der Funktion get() abgerufen werden können.
Wenn status false ist, enthält die Antwort einen Parameter err mit einer Beschreibung des Fehlers.
Wenn Sie mit einem anderen Arbeitsblatt als dem ersten arbeiten müssen, können Sie einen zusätzlichen Parameter übergeben: worksheet_name_or_id_or_index.
Jede Funktion akzeptiert diesen Parameter, der das Arbeitsblatt anhand seines Namens, seiner ID oder seines Index identifiziert.
Wörterbuch – einige Funktionen akzeptieren ein Wörterbuch, das einen bestimmten Datensatz enthält. Es gibt mehrere Regeln, die Sie befolgen müssen:
- Das gesamte Wörterbuch muss in einfache Anführungszeichen gesetzt werden:
'{}'. - Wörterbuchschlüssel und -werte (Text oder Variablen) müssen in doppelte Anführungszeichen gesetzt werden:
'{"key": "value", "key2": "#{email}"}'.
So verwenden Sie Ihr eigenes Google-Konto
Standardmäßig verwendet der MaviBot-Builder eigene Dienstkonten, um auf Ihre Tabellen zuzugreifen. Daher müssen Sie über einen Link Bearbeitungszugriff auf Ihre Tabellen gewähren.
Für mehr Sicherheit können Sie Ihre eigenen Authentifizierungsdaten und Dienstkontoschlüssel verwenden.
Google Sheets hat Grenzen für die Anzahl der Anfragen, die in einem bestimmten Zeitraum gestellt werden können. Um nicht von den Grenzen der gemeinsamen Dienstkonten abhängig zu sein, können Sie Ihr eigenes Konto verwenden.
Gehen Sie dazu zu Ihren Projekteinstellungen, öffnen Sie Projektkonstanten und fügen Sie eine Variable mit dem Namen sheet_json_keys hinzu, die ein Array Ihrer Schlüssel enthält.
Das Array kann entweder JSON-Schlüssel enthalten, die aus Dateien kopiert wurden, oder URLs, die auf Schlüsseldateien verweisen.
JSON-Schlüssel aus einer Datei: Besorgen Sie sich die Schlüsseldatei (Anweisungen finden Sie unten), öffnen Sie sie in einem beliebigen Texteditor, kopieren Sie ihren Inhalt und fügen Sie ihn dem Array hinzu.
URL einer Schlüsseldatei: Der einfachste Weg, eine solche URL zu erhalten, besteht darin, die Datei in den MaviBot-Builder hochzuladen.
Gehen Sie dazu wie folgt vor:
- Erstellen Sie einen Block, der kein Zustandsblock ist.
- Laden Sie die Datei mit den Dienstkonto-Anmeldeinformationen in die Anhänge des Blocks hoch.
- Klicken Sie mit der rechten Maustaste auf den Namen der hochgeladenen Datei.
- Wählen Sie Linkadresse kopieren.

Vier Beispiele für die Variable sheet_json_keys:
1. Ein Array mit zwei Schlüsseldatei-URLs:
["URL der Schlüsseldatei", "URL der zweiten Schlüsseldatei"]

2. Ein Array mit zwei URLs und zwei JSON-Schlüsseln:
["URL der Schlüsseldatei", "URL der zweiten Schlüsseldatei", {JSON-Schlüssel aus Datei}, {JSON-Schlüssel aus Datei}]

3. Ein Array mit einem JSON-Schlüssel:
[{JSON-Schlüssel aus Datei}]
(Der im Screenshot gezeigte Schlüssel ist gekürzt. Der tatsächliche Schlüssel ist deutlich länger.)

4. Ein Array mit einer Schlüsseldatei-URL:
["URL der Schlüsseldatei"]

Fügen Sie die Schlüssel zu Projektkonstanten hinzu.
Sie müssen beim Aufruf von Rechnerfunktionen keinen zusätzlichen Parameter übergeben. Die Schlüssel werden automatisch geladen.
Wenn die Variable
sheet_json_keysmehrere Dienstkonten enthält, müssen Sie die Google-Sheets-Zugriffsberechtigungen für ALLE DIENSTKONTEN konfigurieren, die in der Variablen angegeben sind.
Weitere Informationen zur Verwendung Ihres eigenen Google-Kontos mit Google Sheets und zum Erhalten von Dienstkontoschlüsseln finden Sie im entsprechenden Dokumentationsartikel.
So erstellen Sie eine neue Tabelle aus MaviBot
MaviBot unterstützt das Erstellen neuer Google-Sheets-Tabellen.
Um diese Funktion zu nutzen, müssen Sie die Variable sheet_json_keys konfigurieren. Anweisungen zum Erstellen dieser Variable finden Sie hier.
Funktion zum Erstellen einer Tabelle:
sheet_create_spreadsheet(new_worksheet_title, google_email)
Parameter:
- new_worksheet_title – der Name der neuen Google-Sheets-Tabelle.
- google_email – die E-Mail-Adresse Ihres Google-Kontos.
Der Parameter google_email ist erforderlich, um der angegebenen E-Mail-Adresse Bearbeiterberechtigungen für die neu erstellte Tabelle zu erteilen.
Google weist den Besitz der Tabelle automatisch dem Google-Projekt zu, das Sie zuvor registriert haben.
Leider ist dies derzeit die einzige verfügbare Methode zum Erstellen von Google-Sheets-Tabellen über die API.
Beispiel:
new = sheet_create_spreadsheet('ЧЕМОДАНчик', '[email protected]')

Nach dem Aktualisieren der Google-Sheets-Seite in Ihrem Konto finden Sie die neu erstellte Tabelle:

In der Liste der Client-Variablen erscheint eine Variable mit dem Namen google_spreadsheet_id. Sie enthält die ID der neu erstellten Tabelle.
Wenn die Anfrage erfolgreich abgeschlossen wird, gibt die Funktion ein Wörterbuch mit dem Status und einer Benachrichtigung zurück:
{'status': True, 'message': "Google worksheet 'ЧЕМОДАНчик' is created"}
- status – das Ergebnis der Operation.
- result – die Operationsmeldung.
Wenn ein Fehler auftritt, gibt die Funktion false als Status zusammen mit einer Fehlerbeschreibung zurück.
So fügen Sie einer Google-Sheets-Tabelle ein neues Arbeitsblatt hinzu
Verwenden Sie die folgende Funktion:
sheet_create_worksheet(sheet_id, list_name, cols=None, rows=None)
Die Funktion gibt ein Wörterbuch zurück, das die ID des neu erstellten Arbeitsblatts und einen Status von true enthält:
{"status":true,"list_id":1063146761}
Wenn ein Fehler auftritt, gibt die Funktion einen Status von false und eine Fehlerbeschreibung zurück:
{"status":false,"err":"Fehler oder Beschreibung"}
Beispiel:
result = sheet_create_worksheet('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', "Neue Liste")
status = get(result, 'status')

So löschen Sie ein Arbeitsblatt in Google Sheets
Um ein Arbeitsblatt zu löschen, verwenden Sie die folgende Funktion:
sheet_delete_worksheet(sheet_id, worksheet_name_or_index)
Parameter:
- sheet_id – die ID Ihrer Google-Sheets-Tabelle.
- worksheet_name_or_id_or_index – der Name oder die ID des Arbeitsblatts, das Sie löschen möchten.
Beispiel:
gelöschtes_sfh = sheet_delete_worksheet('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ', 'Лист14')

Die Funktion gibt eine Antwort wie die folgende zurück:
{"status":true,"result":"worksheet Лист14 is deleted"}
Wenn ein Fehler auftritt, gibt die Funktion eine Fehlerbeschreibung zurück.
So erhalten Sie die Anzahl der Arbeitsblätter in Google Sheets
Um die Gesamtzahl der Arbeitsblätter und eine Liste der Index-Name-Paare der Arbeitsblätter zu erhalten, verwenden Sie die folgende Funktion:
sheet_worksheet_indexes(sheet_id)
- sheet_id – die ID Ihrer Google-Sheets-Tabelle.
Beispiel:
arbeitsblatt_indizes = sheet_worksheet_indexes('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ')

Die Funktion gibt eine Antwort wie die folgende zurück:
{
"status": true,
"worksheets_count": 10,
"worksheet_titles": {
"1": "Лист1",
"2": "Лист2",
"3": "cvtyf",
"4": "Лист4",
"5": "о да",
"6": "Это новый лист",
"7": "вль и я",
"8": "таракан",
"9": "чемодан",
"10": "БАЗА ДАННЫХ"
}
}
Wenn ein Fehler auftritt, gibt die Funktion eine Fehlerbeschreibung zurück.
So benennen Sie ein Arbeitsblatt in Google Sheets um
Um ein Arbeitsblatt umzubenennen, verwenden Sie die folgende Funktion:
sheet_rename_worksheet(sheet_id, worksheet_name_or_index, new_tile)
Parameter:
- sheet_id – die ID Ihrer Google-Sheets-Tabelle.
- worksheet_name_or_id_or_index – der Name oder die ID des Arbeitsblatts, das Sie umbenennen möchten.
- new_tile – der neue Name des Arbeitsblatts.
Beispiel:
worksheet_title_change = sheet_rename_worksheet('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ', 'Лист5', 'о да')

So schreiben Sie Daten zeilenweise in bestimmte Spalten
Sie können mehrere Daten von einem Benutzer sammeln und sie in die erste verfügbare Zeile einer Tabelle schreiben.
Die Tabelle muss eine Kopfzeile haben. Mindestens eine Zelle in der ersten Zeile muss einen Wert enthalten.
Verwenden Sie die folgende Funktion:
sheet_mapping_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)
Parameter:
- sheet_id — die ID Ihrer Google-Sheets-Tabelle.
-
cell_data — ein Wörterbuch mit den zu schreibenden Daten, z. B.:
'{"A": "value", "D": "#{email}"}', wobei jeder Schlüssel einen Spaltenbuchstaben darstellt. - worksheet_name_or_id_or_index — ein optionaler Parameter, der den Namen, den Index oder die ID des Arbeitsblatts angibt.
Wenn die Anfrage erfolgreich ist, gibt die Funktion ein Wörterbuch wie folgt zurück:
{"status":true,"number_row":14}
Sie können den Wert number_row speichern und in nachfolgenden Operationen verwenden.
Beispiel:
result = sheet_mapping_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '{"a":"aaaaa", "B": "#{email}"}')
status = get(result, 'status')
number_row = get(result, 'number_row')

Beispiel mit einer Arbeitsblattkennung:
list_name = 'Рейтинг'
result = sheet_mapping_cells('#{gsheet_id}', '{"a":"#{client_id}", "B": "#{ball}"}', '#{list_name}')
So schreiben Sie Daten in die erste leere Zeile
Sie können mehrere Daten von einem Benutzer sammeln und sie in die erste leere Zeile einer Tabelle schreiben.
Diese Funktion funktioniert ähnlich wie sheet_mapping_cells, fügt jedoch neue Zeilen hinzu, wenn das Ende der Tabelle erreicht ist.
Beachten Sie, dass diese Methode nicht unbedingt Daten am unteren Ende der Tabelle schreibt. Sie schreibt in die erste leere Zeile.
Sie eignet sich am besten zum kontinuierlichen Hinzufügen von Daten in dieselben Spalten.
Verwenden Sie die folgende Funktion:
sheet_append_row(sheet_id, cell_data, worksheet_name_or_id_or_index=None)
Parameter:
- sheet_id — die ID Ihrer Google-Sheets-Tabelle.
-
cell_data — ein Wörterbuch mit den zu schreibenden Daten, z. B.:
'{"A": "value", "D": "#{email}"}', wobei jeder Schlüssel einen Spaltenbuchstaben darstellt. - worksheet_name_or_id_or_index — ein optionaler Parameter, der den Namen, den Index oder die ID des Arbeitsblatts angibt.
Wenn die Anfrage erfolgreich ist, gibt die Funktion ein Wörterbuch wie folgt zurück:
{"status":true,"number_row":14}
Sie können den Wert number_row für die spätere Verwendung speichern.
Beispiel:
result = sheet_append_row('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '{"a":"aaaaa", "B": "#{email}"}')
status = result["status"]
number_row = result["number_row"]

Beispiel mit einer Arbeitsblattkennung:
list_name = 'результаты викторины'
gs_id = '12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT'
result = sheet_append_row(gs_id, '{"a":"#{client_id}", "B": "#{ball}"}', list_name)

So schreiben Sie Daten in bestimmte Zellen
Verwenden Sie die folgende Funktion:
sheet_write_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)
Parameter:
- sheet_id — die ID Ihrer Google-Sheets-Tabelle.
-
cell_data — ein Wörterbuch mit Zelladressen und Werten, z. B.:
'{"A1": "value", "D4": "#{email}"}'. Jeder Schlüssel besteht aus einem Spaltenbuchstaben und einer Zeilennummer. - worksheet_name_or_id_or_index — ein optionaler Parameter, der den Namen, den Index (beginnend bei 1) oder die ID des Arbeitsblatts angibt.
Beispiel für cell_data:
'{"a1":"#{переменная}", "b3":"#{переменная}", "c1":"12545", "d20":"просто текст"}'
Die Daten werden in die genauen Zellen geschrieben, die Sie angeben. In diesem Beispiel sind das die Zellen a1, b3, c1 und d20.
Wenn die Anfrage erfolgreich ist, gibt die Funktion Folgendes zurück:
{"status":true}
Wenn ein Fehler auftritt, gibt die Funktion eine Fehlerbeschreibung zurück:
{"status":false,"err":"Error or description"}
Beispiel für sheet_write_cells:
Mit der Arbeitsblatt-ID 123456789:
result = sheet_write_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a3", "b3": "#{email}"}', '123456789')
Ohne Angabe eines Arbeitsblatts:
result = sheet_write_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a3", "b3": "#{email}"}')
status = get(result, 'status')

So löschen Sie bestimmte Zellen
Verwenden Sie die folgende Funktion:
sheet_remove_cells(sheet_id, cell_list, worksheet_name_or_id_or_index=None)
Parameter:
- sheet_id — die ID Ihrer Google-Sheets-Tabelle.
-
cell_list — ein Array von Zelladressen, z. B.:
'["A1", "D4"]', wobei jede Adresse einen Spaltenbuchstaben und eine Zeilennummer enthält. - worksheet_name_or_id_or_index — ein optionaler Parameter, der den Namen, den Index (beginnend bei 1) oder die ID des Arbeitsblatts angibt.
Wenn die Anfrage erfolgreich ist, gibt die Funktion Folgendes zurück:
{"status":true}
Wenn ein Fehler auftritt, gibt die Funktion Folgendes zurück:
{"status":false,"err":"Error or description"}
Beispiel:
Mit der Arbeitsblatt-ID 123456789:
result = sheet_remove_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '["a1", "b3", "c2"]', '123456789')
Ohne Angabe eines Arbeitsblatts:
result = sheet_remove_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '["a1", "b3", "c2"]')
status = get(result, 'status')
Die Funktion löscht die Werte in den angegebenen Zellen: a1, b3 und c2.
Die Spaltennummerierung beginnt bei 1.

So schreiben Sie Daten in die erste leere Zelle einer Zeile
Sie können Daten in eine bestimmte Zeile schreiben. Der Wert wird in die erste leere Zelle rechts von der letzten befüllten Zelle platziert.
Verwenden Sie die folgende Funktion:
sheet_append_cell_in_row(sheet_id, row, value, worksheet_name_or_index=None)
Parameter:
- sheet_id — die ID Ihrer Google-Sheets-Tabelle.
- row — die Nummer der Zeile, in die der Wert geschrieben wird.
- value — der Wert, der in die Zelle geschrieben werden soll.
- worksheet_name_or_id_or_index — ein optionaler Parameter, der den Namen, den Index (beginnend bei 1) oder die ID des Arbeitsblatts angibt.
Wenn die Anfrage erfolgreich ist, gibt die Funktion eine Antwort wie folgt zurück:
{"status":true,"number_col":10,"col_name":"J3"}
Sie können diese Werte für die spätere Verwendung speichern.
Wenn ein Fehler auftritt, gibt die Funktion ein Wörterbuch mit dem Status false und einer Fehlerbeschreibung zurück:
{"status":false,"err":"Error value"}
Beispiel:
Schreiben eines Werts in eine leere Zelle in der ersten Zeile:
result = sheet_append_cell_in_row('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', 1, "Значение")


So lesen Sie Daten aus einer Tabelle
Verwenden Sie die folgende Funktion:
sheet_read_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)
Parameter:
- sheet_id — die ID Ihrer Google-Sheets-Tabelle.
- cell_data — ein Wörterbuch, das die zu lesenden Zellbereiche angibt.
- worksheet_name_or_id_or_index — ein optionaler Parameter, der den Namen, den Index (beginnend bei 1) oder die ID des Arbeitsblatts angibt.
Beispiel für cell_data:
'{"a1":"a1", "a3":"b4", "c1":"c3"}'
In diesem Beispiel:
-
"a1":"a1"gibt den Wert einer einzelnen Zelle zurück. -
"c1":"c3"gibt drei Werte aus Spalte C zurück.
Wenn die Anfrage erfolgreich ist, gibt die Funktion ein Wörterbuch mit dem Status und allen angeforderten Zellwerten zurück:
{
"status": true,
"A1": "значение",
"A3": "значение",
"B3": "значение",
"A4": "значение",
"B4": "значение",
"C1": "",
"C2": "значение",
"C3": "ddddddd"
}
Wenn ein Fehler auftritt, gibt die Funktion Folgendes zurück:
{"status":false,"err":"Error or description"}
Beispiel:
Mit der Arbeitsblatt-ID 123456789:
result = sheet_read_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a1", "a3": "b4", "c1": "c3"}', '123456789')
Ohne Angabe eines Arbeitsblatts:
result = sheet_read_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a1", "a3": "b4", "c1": "c3"}')
status = get(result, 'status')

So löschen Sie einen Zellbereich
Verwenden Sie die folgende Funktion:
sheet_remove_range(sheet_id, del_range, worksheet_name_or_id_or_index=None)
Parameter:
- sheet_id — die ID Ihrer Google-Sheets-Tabelle.
-
del_range — der zu löschende Zellbereich, angegeben im Format
"A1:B2". - worksheet_name_or_id_or_index — ein optionaler Parameter, der den Namen, den Index (beginnend bei 1) oder die ID des Arbeitsblatts angibt.
Wenn die Anfrage erfolgreich ist, gibt die Funktion Folgendes zurück:
{"status":true}
Wenn ein Fehler auftritt, gibt die Funktion Folgendes zurück:
{"status":false,"err":"Error or description"}
Beispiel:
Löschen Sie die Zellen A1, B1, A2 und B2 auf dem ersten Arbeitsblatt:
result = sheet_remove_range('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', 'A1:B2')
