Pular para conteúdo

SHEETS_CHART - Criar Gráficos no Google Sheets

O que é este Node?

O SHEETS_CHART é o node responsável por criar gráficos visuais no Google Sheets a partir de dados da planilha: linhas, barras, pizza, etc.

Por que este Node existe?

Gráficos visualizam dados de forma intuitiva. O SHEETS_CHART existe para:

  1. Dashboards: Criar painéis visuais automaticamente
  2. Relatórios: Gerar gráficos de vendas, performance
  3. Análise: Visualizar tendências e padrões
  4. Apresentações: Criar gráficos para reports executivos

Como funciona internamente?

Quando o SHEETS_CHART é executado, o sistema:

  1. Autentica: Valida tokens OAuth2
  2. Define especificações: Tipo de gráfico, dados fonte, posição
  3. Executa batchUpdate: Chama com requisição addChart
  4. Cria gráfico: Insere visualização na planilha
  5. Retorna ID: Devolve chartId para manipulações futuras

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

case 'chart':
  const chartResult = await sheets.spreadsheets.batchUpdate({
    spreadsheetId: data.spreadsheetId,
    requestBody: {
      requests: [{
        addChart: {
          chart: {
            spec: {
              title: data.chartTitle,
              basicChart: {
                chartType: data.chartType,  // 'LINE', 'BAR', 'PIE', etc
                domains: [{
                  domain: {
                    sourceRange: {
                      sources: [{
                        sheetId: data.sheetId,
                        startRowIndex: data.domainStartRow,
                        endRowIndex: data.domainEndRow,
                        startColumnIndex: data.domainStartColumn,
                        endColumnIndex: data.domainEndColumn,
                      }],
                    },
                  },
                }],
                series: [{
                  series: {
                    sourceRange: {
                      sources: [{
                        sheetId: data.sheetId,
                        startRowIndex: data.seriesStartRow,
                        endRowIndex: data.seriesEndRow,
                        startColumnIndex: data.seriesStartColumn,
                        endColumnIndex: data.seriesEndColumn,
                      }],
                    },
                  },
                }],
              },
            },
            position: {
              overlayPosition: {
                anchorCell: {
                  sheetId: data.sheetId,
                  rowIndex: data.positionRow,
                  columnIndex: data.positionColumn,
                },
              },
            },
          },
        },
      }],
    },
  });

  return {
    success: true,
    chartId: chartResult.data.replies[0].addChart.chart.chartId,
  };

Quando você DEVE usar este Node?

Use SHEETS_CHART quando precisar visualizar dados graficamente:

Casos de uso

  1. Vendas Mensais: Gráfico de linhas mostrando evolução
  2. Distribuição: Gráfico de pizza para shares de mercado
  3. Comparação: Gráfico de barras comparando produtos
  4. Tendências: Gráfico de área para crescimento ao longo do tempo

Quando NÃO usar SHEETS_CHART

  • Dados tabulares simples: Mantenha tabela
  • Análise externa: Exporte dados e visualize em BI tools

Parâmetros

Campo Tipo Obrigatório Descrição
operation string Sim Deve ser "chart"
spreadsheetId string Sim ID da planilha
sheetId number Sim ID da aba
chartTitle string Não Título do gráfico
chartType string Sim LINE, BAR, COLUMN, PIE, AREA, etc
domainStartRow number Sim Range do eixo X (início)
domainEndRow number Sim Range do eixo X (fim)
domainStartColumn number Sim Coluna X (início)
domainEndColumn number Sim Coluna X (fim)
seriesStartRow number Sim Range dos dados (início)
seriesEndRow number Sim Range dos dados (fim)
seriesStartColumn number Sim Coluna dados (início)
seriesEndColumn number Sim Coluna dados (fim)
positionRow number Sim Linha onde inserir gráfico
positionColumn number Sim Coluna onde inserir gráfico
accessToken string Sim Token OAuth2
refreshToken string Sim Token OAuth2 refresh

Exemplo 1: Gráfico de Vendas Mensais

Objetivo: Criar gráfico de linhas mostrando vendas por mês

JSON para Importar

{
  "name": "Criar Gráfico Vendas",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "sheets_1",
      "type": "google_sheets",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Criar Gráfico",
        "parameters": {
          "operation": "chart",
          "spreadsheetId": "1Vendas_XYZ",
          "sheetId": 0,
          "chartTitle": "Vendas Mensais 2025",
          "chartType": "LINE",
          "domainStartRow": 1,
          "domainEndRow": 13,
          "domainStartColumn": 0,
          "domainEndColumn": 1,
          "seriesStartRow": 1,
          "seriesEndRow": 13,
          "seriesStartColumn": 1,
          "seriesEndColumn": 2,
          "positionRow": 15,
          "positionColumn": 0,
          "accessToken": "{{google_access_token}}",
          "refreshToken": "{{google_refresh_token}}"
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Confirmar",
        "parameters": {
          "message": "📊 Gráfico de vendas criado com sucesso!"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 700, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "sheets_1" },
    { "source": "sheets_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: 📊 Gráfico de vendas criado com sucesso!

Resposta do Node

{
  "success": true,
  "chartId": 123456789
}

Boas Práticas

SIM: - Escolha tipo de gráfico adequado aos dados - Use títulos descritivos - Posicione gráficos em área visível - Mantenha dados fonte organizados

NÃO: - Não sobrecarregue com muitas séries - Não use gráfico de pizza para muitas categorias - Não posicione gráfico sobre dados

Dicas

💡 Dica 1: Tipos de gráfico comuns: - LINE: Tendências ao longo do tempo - COLUMN: Comparação entre categorias - BAR: Ranking horizontal - PIE: Distribuição percentual - AREA: Volume ao longo do tempo

💡 Dica 2: Domain = eixo X (categorias), Series = eixo Y (valores)

💡 Dica 3: Salve o chartId retornado para atualizar ou deletar o gráfico posteriormente.

Próximo Node

SHEETS_READ - Ler dados para o gráfico → SHEETS_FORMAT - Formatar dados fonte