Hola a todos,
Me estoy encontrando con un problema con el nodo de Google Sheets (n8n-nodes-base.googleSheets, typeVersion 4.5), donde las filas que se añaden a través de las operaciones appendOrUpdate se escriben fuera del límite de una Tabla nativa de Google Sheets, en lugar de escribirse en la siguiente fila disponible dentro de la Tabla.
La hoja de destino utiliza la función nativa de Tablas de Google Sheets (Insertar → Tabla). La Tabla abarca aproximadamente A1:N7, con la fila 1 como fila de encabezado y las filas 2–7 que contienen marcadores de posición de columna escrita (fecha, moneda, chip de persona). La Tabla se llama “Invoices”.
Comportamiento esperado versus real
Cuando se envía una nueva fila al nodo, debería insertarse dentro del límite de la Tabla, ya sea rellenando la siguiente fila vacía de la Tabla o extendiendo la Tabla para acomodar el nuevo registro, de modo que la fila herede los tipos de columna, el formato y las referencias estructuradas de la Tabla. En su lugar, la fila se escribe en la primera fila vacía inmediatamente debajo del rango de datos actual de la Tabla, fuera del límite de la Tabla; no se convierte en parte de la Tabla y no hereda sus tipos de columna ni formato. Esto ocurre independientemente de si la Tabla contiene filas de marcadores de posición vacías o solo filas rellenadas.
He adjuntado una captura de pantalla de la hoja de destino mostrando el problema, y estoy disponible para compartir una exportación sanitizada del flujo de trabajo si eso ayuda. Gracias por echarle un vistazo.
1 me gusta
Sí, parece que n8n está tratando la hoja como un rango normal, no como la función Tables nativa más reciente de Google.
Yo probaría con una fila en blanco ya dentro de la tabla e intentaría también establecer el rango al área de la tabla.
Si sigue añadiendo debajo de la tabla, lo trataría como una limitación/bug del nodo Sheets y usaría un workaround de rango normal o accedería directamente a la API de Sheets.
1 me gusta
¡Bienvenido @ernest28 a nuestra comunidad! Soy Jay y soy un creador verificado de n8n.
Esta es una limitación conocida - el nodo Google Sheets de n8n llama a la API Sheets v4 en el nivel spreadsheets.values, que no tiene conocimiento de las Tablas nativas de Google Sheets. La función Tables se encuentra sobre los rangos de hoja regulares pero la API no la expone de la misma manera, así que añadir una fila simplemente encuentra la siguiente fila vacía en el rango sin “insertar” una fila en el objeto Table. La única solución real por ahora es evitar usar Tablas nativas como destino - usa un rango regular en su lugar y aplica el formato manualmente, o usa el nodo Sheets API con una llamada batchUpdate directa si necesitas que la fila se registre dentro de la estructura Table.
1 me gusta
@ernest28 confirmando lo que dijeron @OMGItsDerek + @nguyenthieutoan — el endpoint values.append de la API de Sheets que n8n llama no tiene concepto de Tablas nativas, así que la fila cae fuera del límite por diseño. la solución alternativa cuando aún quieres inserciones conscientes de Tablas es llamar a spreadsheets.batchUpdate directamente a través de HTTP Request con una solicitud insertRange que extienda explícitamente la Tabla.
aquí está el JSON del nodo HTTP Request para la solución alternativa:
insertRange desplaza las celdas existentes hacia abajo + extiende el objeto Tabla, luego updateCells escribe tu fila en la fila recién creada DENTRO del límite. los tipos de columna + el formato se heredan de la definición de Tabla. ajusta startRowIndex/endRowIndex a dónde termina actualmente la Tabla (o consulta primero con spreadsheets.get + includeGridData=false para encontrar el límite en vivo).
1 me gusta