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:
- Dashboards: Criar painéis visuais automaticamente
- Relatórios: Gerar gráficos de vendas, performance
- Análise: Visualizar tendências e padrões
- Apresentações: Criar gráficos para reports executivos
Como funciona internamente?
Quando o SHEETS_CHART é executado, o sistema:
- Autentica: Valida tokens OAuth2
- Define especificações: Tipo de gráfico, dados fonte, posição
- Executa batchUpdate: Chama com requisição addChart
- Cria gráfico: Insere visualização na planilha
- 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
- Vendas Mensais: Gráfico de linhas mostrando evolução
- Distribuição: Gráfico de pizza para shares de mercado
- Comparação: Gráfico de barras comparando produtos
- 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