Google Sheets-Knoten `appendOrUpdate` schreibt außerhalb der nativen Tabellengrenzen

Hallo zusammen,

Ich bin auf ein Problem mit dem Google Sheets Node (n8n-nodes-base.googleSheets, typeVersion 4.5) gestoßen, bei dem Zeilen, die über die appendOrUpdate Operationen angefügt werden, außerhalb der Grenzen einer nativen Google Sheets Tabelle geschrieben werden, anstatt in die nächste verfügbare Zeile innerhalb der Tabelle eingefügt zu werden.

Das Zielblatt verwendet die native Google Sheets Tabellen Funktion (Einfügen → Tabelle). Die Tabelle erstreckt sich von etwa A1:N7, wobei Zeile 1 die Kopfzeile ist und die Zeilen 2–7 Platzhalter mit typisierten Spalten enthalten (Datum, Währung, Person Chip). Die Tabelle heißt „Invoices

1 „Gefällt mir“

Ja, das sieht so aus, als würde n8n das Sheet wie einen normalen Bereich behandeln, nicht wie Googles neuere native Tables-Funktion.

Ich würde das mit einer bereits leeren Zeile innerhalb der Tabelle testen und auch versuchen, den Bereich auf den Tabellenbereich einzustellen.

Wenn es immer noch unterhalb der Tabelle anfügt, würde ich es als Limitation/Bug des Sheets-Nodes behandeln und entweder einen normalen Bereich als Workaround verwenden oder direkt die Sheets-API nutzen.

1 „Gefällt mir“

Willkommen @ernest28 in unserer Community! Ich bin Jay und bin ein n8n verified creator.

Das ist eine bekannte Lücke – n8ns Google Sheets Node ruft die Sheets API v4 auf der Ebene spreadsheets.values auf, die kein Bewusstsein für native Google Sheets Tabellen hat. Die Tabellen-Funktion sitzt auf regulären Sheet-Bereichen auf, aber die API macht sie nicht auf die gleiche Weise verfügbar, sodass das Anhängen einer Zeile einfach die nächste leere Zeile im Bereich findet, ohne eine Zeile in das Tabellen-Objekt zu „einfügen.

1 „Gefällt mir“

@ernest28 bestätige ich, was @OMGItsDerek + @nguyenthieutoan gesagt haben — der Sheets API values.append Endpoint, den n8n aufruft, hat kein Konzept für native Tables, daher landet die Zeile von Haus aus außerhalb der Grenzen. Der Workaround, wenn du trotzdem Table-aware Inserts möchtest, ist, spreadsheets.batchUpdate direkt über HTTP Request mit einer insertRange Anfrage aufzurufen, die die Table explizit erweitert.

Hier ist die HTTP Request Node JSON für den Workaround:

insertRange verschiebt existierende Zellen nach unten + erweitert das Table-Objekt, dann schreibt updateCells deine Zeile in die neu erstellte Zeile INNERHALB der Grenzen. Spaltentypen + Formatierung werden von der Table-Definition geerbt. Passe startRowIndex/endRowIndex an, wo die Table gerade endet (oder frage es zuerst mit spreadsheets.get + includeGridData=false ab, um die aktuelle Grenze zu ermitteln).

1 „Gefällt mir“