Skip to content

method NewChart

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

NewChart

:NewChart(cTipo)
Cria um objeto de gráfico de qualquer tipo suportado pela biblioteca, já vinculado ao Excel atual.

Fonte: src/custom.excel.tlpp — Método da classe Xlsx.


Parâmetros

Parâmetro Tipo Descrição Obrigatório Obs
cTipo caractere Tipo do gráfico (tabela abaixo) Default "col"

Tipos e atalhos disponíveis no cTipo

cTipo (Atalhos) Classe criada Descrição
"col" ChartBar Colunas verticais agrupadas
"bar" ChartBar Barras horizontais agrupadas
"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

Retorno

Objeto — instância da classe de gráfico correspondente (herdada de custom.excel.chart.Chart)


Exemplos

Gráfico de colunas 3D:

Local oExcel := custom.excel.Xlsx():New("Graficos3D")
oExcel:ADDPlan(cNome = "Dados")

// ... preencher dados ...

Local oGraf := oExcel:NewChart("col")
oGraf:Set3D(.T.)
oGraf:SetTitulo("Vendas 3D")
oGraf:AddSerie("Sudeste", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oGraf:Insert(1, 9, 16, 17)

Gráfico de Rosca com furo personalizado:

Local oGraf := oExcel:NewChart("rosca")
oGraf:SetFuro(60) // Furo de 60%
oGraf:SetTitulo("Participação")
oGraf:SetRotulos(.T.)
oGraf:AddSerie("Total", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oGraf:Insert(1, 9, 16, 17)

Gráfico Combinado (Combo):

Local oCombo := oExcel:NewChart("combo")
oCombo:SetTitulo("Vendas x Margem")

// Criar membros usando New(Nil)
Local oCol := custom.excel.chart.ChartBar():New(Nil)
oCol:AddSerie("Vendas", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")

Local oLin := custom.excel.chart.ChartLine():New(Nil)
oLin:AddSerie("Margem", "Dados!$C$2:$C$7", "Dados!$A$2:$A$7")

oCombo:AddChart(oCol)
oCombo:AddChart(oLin, lEixoSecundario = .T.) // Margem no eixo secundário (direita)
oCombo:Insert(1, 9, 16, 17)

Obs

Os gráficos criados via NewChart são automaticamente associados à planilha atual e adicionados ao array de limpeza interno (aCleanObj) do Excel, sendo liberados no método Destroy().


Clone this wiki locally