Skip to content

method AddTabela

Saulo Martins edited this page Jul 4, 2026 · 1 revision

AddTabela

:AddTabela(cNome,nLinha,nColuna)
Cria uma tabela com formatação (recurso "Formatar como Tabela" do Excel) na planilha atual e retorna o objeto da tabela para edição


Parâmetros

Parâmetro Tipo Descrição Obrigatório Obs
cNome caractere Nome da tabela (usado em fórmulas estruturadas, ex: Tabela1[Coluna]) Se omitido, gera um nome automático
nLinha numérico Linha inicial da tabela Default 1
nColuna numérico Coluna inicial da tabela Default 1

Retorno

Objeto - instância de custom.excel.Table

Métodos do objeto Table

Método Descrição
AddStyle(cNome,lLinhaTiras,lColTiras,lFormPrimCol,lFormUltCol) Define o estilo predefinido da tabela (ex: "TableStyleMedium15") e opções de tiras de linha/coluna e formato da primeira/última coluna
AddFilter(lFiltro) Adiciona filtros à tabela
AddColumn(cNome,nStyle) Adiciona uma coluna
AddLine(nQtd) Adiciona nova(s) linha(s)
Cell(xColuna,xValor,cFormula,nStyle) Preenche a célula da linha atual - a coluna pode ser informada pelo nome ou pelo número
AddTotal(xColuna,xValor,cFunction,nStyle) Define o totalizador de uma coluna - cFunction aceita função ("SUM", "COUNTA", ...), fórmula completa ou "" para texto
AddTotais() Adiciona a linha de totais
Alias2Tab(cAlias,oStyle,lSx3,jCab,...) Preenche a tabela a partir de um alias/query (veja Alias2Tab)
Finish() Encerra a edição da tabela (obrigatório)

Exemplo

Local nCont
Local nVenda, nTotalVenda := 0
Local oExcel  := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local oTabela
oExcel:ADDPlan(cNome="Tabela",cCor="0000FF")
oTabela := oExcel:AddTabela(cNome="Tabela1",nLinha=1,nColuna=1) //Cria a tabela
oTabela:AddStyle(cNome="TableStyleMedium15",lLinhaTiras=.T.) //Estilo predefinido com tiras de linha
oTabela:AddFilter()             //Adiciona filtros à tabela
oTabela:AddColumn("Linha")      //Adiciona as colunas
oTabela:AddColumn("Filial")
oTabela:AddColumn("Venda")
oTabela:AddColumn("Data Venda")
For nCont:=2 to 100
	oTabela:AddLine()           //Adiciona nova linha
	oTabela:Cell(xColuna="Linha",xValor=nCont)
	oTabela:Cell(xColuna="Filial",xValor="Filial 01")
	nVenda      := Randomize(1,100)
	nTotalVenda += nVenda
	oTabela:Cell(xColuna="Venda",xValor=nVenda)
	oTabela:Cell(xColuna=4,xValor=date()+nCont) //Coluna pelo número
Next
oTabela:AddTotal(xColuna="Linha",xValor="TOTAL",cFunction="")  //Texto na linha de totais
oTabela:AddTotal(xColuna="Filial",xValor=99,cFunction="SUBTOTAL(103,Tabela1[Filial])") //Fórmula completa
oTabela:AddTotal(xColuna="Venda",xValor=nTotalVenda,cFunction="SUM") //Função SUM
oTabela:AddTotais() //Adiciona a linha de totais
oTabela:Finish()    //Fecha a edição da tabela
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()

Exemplo 2 - preenchendo a tabela com query

Local cAlias
Local oExcel  := custom.excel.Xlsx():New()
Local oTabela
oExcel:ADDPlan(cNome="SB1",cCor="1F497D")
cAlias  := MpSysOpenQuery("SELECT B1_COD,B1_DESC,B1_TIPO FROM "+RetSqlName("SB1")+" WHERE D_E_L_E_T_=' '")
oTabela := oExcel:AddTabela("Tabela2")
oTabela:Alias2Tab(cAlias=cAlias,lSx3=.T.) //lSx3=.T. buscar definições dos campos na SX3
(cAlias)->(DbCloseArea())
oTabela:AddTotal(xColuna="Codigo",xValor=0,cFunction="COUNTA")
oTabela:AddTotais()
oTabela:Finish()
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()

Obs

Os nomes de estilos predefinidos seguem o padrão do Excel: TableStyleLight1..21, TableStyleMedium1..28, TableStyleDark1..11.
Sempre chame Finish() ao terminar a edição da tabela.


Clone this wiki locally