Pular para conteúdo

SHEETS_DELETE - Deletar Linhas/Colunas do Google Sheets

O que é este Node?

O SHEETS_DELETE é o node responsável por remover linhas ou colunas inteiras do Google Sheets, incluindo dados e formatação.

Por que este Node existe?

Remover linhas/colunas completamente é necessário em manutenção de dados. O SHEETS_DELETE existe para:

  1. Remoção de Registros: Deletar linhas de dados obsoletos
  2. Limpeza de Estrutura: Remover colunas não utilizadas
  3. Manutenção: Limpar registros processados ou arquivados
  4. Otimização: Reduzir tamanho da planilha removendo dados antigos

Como funciona internamente?

Quando o SHEETS_DELETE é executado, o sistema:

  1. Autentica: Valida tokens OAuth2
  2. Identifica dimensão: Determina se é linha (ROW) ou coluna (COLUMN)
  3. Calcula índices: Converte range para índices (base 0)
  4. Executa batchUpdate: Chama com requisição deleteDimension
  5. Remove completamente: Apaga conteúdo E formatação
  6. Retorna confirmação: Informa sucesso da operação

Código interno (baseado na API Google Sheets):

case 'delete':
  const deleteResult = await sheets.spreadsheets.batchUpdate({
    spreadsheetId: data.spreadsheetId,
    requestBody: {
      requests: [{
        deleteDimension: {
          range: {
            sheetId: data.sheetId,
            dimension: data.dimension || 'ROWS',  // ou 'COLUMNS'
            startIndex: data.startIndex,
            endIndex: data.endIndex,
          },
        },
      }],
    },
  });

  return {
    success: true,
    message: 'Dimension deleted successfully',
  };

Quando você DEVE usar este Node?

Use SHEETS_DELETE quando precisar remover linhas ou colunas completamente:

Casos de uso

  1. Arquivar Processados: "Deletar pedidos já enviados"
  2. Limpeza Periódica: "Remover registros com mais de 90 dias"
  3. Correção de Estrutura: "Remover coluna duplicada"
  4. Dados Temporários: "Deletar linhas de teste após validação"

Quando NÃO usar SHEETS_DELETE

  • Apenas limpar valores: Use NODE SHEETS_CLEAR (mantém estrutura)
  • Atualizar dados: Use NODE SHEETS_UPDATE
  • Ocultar linhas: Use operação de hide ao invés de delete

Parâmetros

Campo Tipo Obrigatório Descrição
operation string Sim Deve ser "delete"
spreadsheetId string Sim ID da planilha
sheetId number Sim ID da aba (Sheet) específica
dimension string Não "ROWS" ou "COLUMNS" (padrão: ROWS)
startIndex number Sim Índice inicial (base 0)
endIndex number Sim Índice final (exclusivo, base 0)
accessToken string Sim Token OAuth2
refreshToken string Sim Token OAuth2 refresh

Exemplo 1: Deletar Pedidos Antigos

Objetivo: Remover pedidos processados há mais de 30 dias

JSON para Importar

{
  "name": "Deletar Pedidos Antigos",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "sheets_read",
      "type": "google_sheets",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Ler Pedidos",
        "parameters": {
          "operation": "read",
          "spreadsheetId": "1Pedidos_XYZ",
          "range": "Pedidos!A2:E100",
          "accessToken": "{{google_access_token}}",
          "refreshToken": "{{google_refresh_token}}"
        }
      }
    },
    {
      "id": "condition_1",
      "type": "condition",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Verificar Idade",
        "parameters": {
          "condition": "{{pedido_data}} < {{30_DAYS_AGO}}"
        }
      }
    },
    {
      "id": "sheets_delete",
      "type": "google_sheets",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Deletar Linha",
        "parameters": {
          "operation": "delete",
          "spreadsheetId": "1Pedidos_XYZ",
          "sheetId": 0,
          "dimension": "ROWS",
          "startIndex": 5,
          "endIndex": 6,
          "accessToken": "{{google_access_token}}",
          "refreshToken": "{{google_refresh_token}}"
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Confirmar",
        "parameters": {
          "message": "✅ Pedidos antigos removidos"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "sheets_read" },
    { "source": "sheets_read", "target": "condition_1" },
    { "source": "condition_1", "target": "sheets_delete", "label": "true" },
    { "source": "condition_1", "target": "message_1", "label": "false" },
    { "source": "sheets_delete", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: ✅ Pedidos antigos removidos

Resposta do Node

{
  "success": true,
  "message": "Dimension deleted successfully"
}

Boas Práticas

SIM: - SEMPRE faça backup antes de deletar dados - Verifique sheetId correto (pode ser obtido da URL) - Use startIndex/endIndex cuidadosamente (base 0) - Considere arquivar antes de deletar

NÃO: - Não delete sem confirmar range correto - Não confunda índice base 0 com número de linha visual - Não delete sem backup de dados críticos

Dicas

💡 Dica 1: startIndex é inclusivo, endIndex é exclusivo. Para deletar linha 5: startIndex=4, endIndex=5

💡 Dica 2: sheetId não é o nome da aba. Obtenha da URL: /edit#gid=SHEET_ID

💡 Dica 3: DELETE é irreversível. Sempre leia dados primeiro e valide antes de executar.

Próximo Node

SHEETS_CLEAR - Limpar sem deletar estrutura → SHEETS_READ - Ler antes de deletar