Skip to content

Graficos

Saulo Martins edited this page Jul 5, 2026 · 2 revisions

Gráficos (Charts)

A biblioteca suporta criação de gráficos diretamente embutidos nas planilhas Excel, sem dependência de Excel instalado no servidor.
Os gráficos são gerados no padrão DrawingML (ECMA-376 §21.2) e ficam ancorados em células da planilha atual.

O fonte com as classes de gráfico é o src/custom.excel.chart.tlpp.


Tipos de gráfico e atalhos

Todos os tipos de gráfico podem ser criados facilmente por atalho de string usando o método NewChart da classe Xlsx:

Atalho NewChart Classe criada Descrição
"col" ChartBar Colunas verticais
"bar" ChartBar Barras horizontais
"line" ChartLine Gráfico de linhas
"pie" ChartPie Gráfico de pizza
"scatter" ChartScatter Gráfico de dispersão XY
"area" ChartArea Gráfico de área
"stock" ou "acoes" ChartStock Gráfico de ações
"radar" ChartRadar Gráfico de radar (aranha)
"doughnut" ou "rosca" ChartDoughnut Gráfico de rosca
"bubble" ou "bolhas" ChartBubble Gráfico de bolhas
"ofpie" ChartOfPie Gráfico de pizza de pizza
"surface" ou "superficie" ChartSurface Gráfico de superfície 3D
"combo" ChartCombo Combinação de múltiplos gráficos

Todos os tipos suportam versão 3D (exceto Dispersão, Bolhas, Radar, Rosca, Pizza de Pizza e Combinação), via método Set3D.


Fluxo básico

// 1. Criar o Excel e uma planilha com dados
Local oExcel := custom.excel.Xlsx():New(cNomeFile = "Relatorio", cTipo = "A")
oExcel:ADDPlan(cNome = "Dados")
// ... preencher células com dados ...

// 2. Criar o gráfico via NewChart (atalho)
Local oGraf := oExcel:NewChart("col")  // Colunas agrupadas

// 3. Configurar título, legenda, séries e opções específicas
oGraf:SetTitulo("Vendas por Região")
oGraf:SetLegenda(.T., "b")             // Legenda no rodapé
oGraf:AddSerie("Sudeste", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oGraf:AddSerie("Sul",     "Dados!$C$2:$C$7", "Dados!$A$2:$A$7")

// 4. Inserir na planilha (âncora linha/coluna inicial → final)
oGraf:Insert(nLinha = 1, nColuna = 9, nLinha2 = 16, nColuna2 = 17)

// 5. Salvar e abrir
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Destroy()

Métodos comuns (classe base Chart)

Todos os tipos de gráfico herdam estes métodos:

Método Descrição
AddSerie Adiciona uma série de dados
SetTitulo Define o título do gráfico
SetLegenda Exibição e posição da legenda
SetGrade Linhas de grade do eixo de valores
Set3D Ativa visualização 3D
Insert Insere o gráfico ancorado em células

Gráficos Avançados e Customização

Você ainda pode instanciar as classes diretamente se preferir ou se precisar de estruturas sem vínculo direto (como na criação de gráficos membros para combinação):

// Instância direta de gráfico de dispersão
Local oGraf := custom.excel.chart.ChartScatter():New(oExcel)
oGraf:SetEstilo("marker")

// Membros de gráfico combinado (New(Nil) — criados soltos)
Local oCombo := oExcel:NewChart("combo")
Local oColunas := custom.excel.chart.ChartBar():New(Nil)
Local oLinha   := custom.excel.chart.ChartLine():New(Nil)

oCombo:AddChart(oColunas, .F.) // eixo principal
oCombo:AddChart(oLinha, .T.)   // eixo secundário (direita)

Exemplos completos

Veja o Exemplo de Gráficos com todos os tipos disponíveis em planilhas de teste.


Clone this wiki locally