Skip to content

method NewStyRules

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

NewStyRules

:NewStyRules()
Cria um conjunto de regras de estilo e formatação. As regras são blocos de código avaliados para cada célula no momento do SetStyle, permitindo formatação dinâmica (ex: zebrar linhas, formatar colunas específicas).


Parâmetros

Não possui parâmetros

Retorno

Objeto - instância de custom.excel.StyleRules para adicionar as regras

Métodos do objeto StyleRules

Método Descrição
AddStyle(bRule,xStyle) Cria regra para definir o estilo completo (NewStyle)
AddnumFmt(bRule,nFmtNum) Cria regra para definir o formato de número
AddFont(bRule,fontId) Cria regra para definir a fonte (AddFont)
Addfill(bRule,fillId) Cria regra para definir o preenchimento de fundo (CorPreenc)
Addborder(bRule,nborderId) Cria regra para definir a borda (Borda)
AddValores(bRule,aValores) Cria regra para alinhamentos (Alinhamento)

O bloco de código bRule recebe {|nLinha,nColuna,oExcel| ... } e deve retornar lógico. Quando retorna .T., a regra é aplicada à célula.

Exemplo

Local nCont
Local oExcel    := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local nPosCorI  := oExcel:CorPreenc("FFB8CCE4")  //Azul ímpar
Local nPosCorP  := oExcel:CorPreenc("FFDCE6F1")  //Azul par
Local nBordaAll := oExcel:Borda("ALL")
Local nFmtNum3  := oExcel:AddFmtNum(nDecimal=3,lMilhar=.T.)
Local nPosFont4 := oExcel:AddFont(nTamanho=11,xCorRGB="FFFF0000",cNome="Calibri",cfamily="2")
Local oEstilo1  := oExcel:NewStyle():Setborder(nBordaAll)
Local oRegEst1  := oExcel:NewStyRules()
//Linhas ímpares com fundo azul claro, pares com fundo azul mais claro (herdam a borda de oEstilo1)
oRegEst1:AddStyle(bRule={|nLin,nCol,oObjExcel| nLin % 2 == 1 }, xStyle=oExcel:NewStyle(oEstilo1):Setfill(nPosCorI))
oRegEst1:AddStyle(bRule={|nLin,nCol,oObjExcel| nLin % 2 == 0 }, xStyle=oExcel:NewStyle(oEstilo1):Setfill(nPosCorP))
oRegEst1:AddnumFmt(bRule={|nLin,nCol,oObjExcel| nCol==3 }, nFmtNum=44)       //Coluna 3 com formato moeda
oRegEst1:AddnumFmt(bRule={|nLin,nCol,oObjExcel| nCol==4 }, nFmtNum=nFmtNum3) //Coluna 4 com 3 casas decimais
oRegEst1:AddFont(bRule={|nLin,nCol,oObjExcel| nCol==4 }, fontId=nPosFont4)  //Coluna 4 com fonte vermelha

oExcel:ADDPlan()
For nCont:=1 to 20
	oExcel:Pos(nCont,1):SetValue(nCont):SetStyle(oRegEst1)
	oExcel:Pos(nCont,3):SetValue(nCont*10):SetStyle(oRegEst1)
	oExcel:Pos(nCont,4):SetValue(nCont/3):SetStyle(oRegEst1)
Next
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()

Obs

O conjunto de regras é passado ao SetStyle no lugar de um estilo comum. Também pode ser usado no parâmetro de regras de estilo do Alias2Tab.


Clone this wiki locally