-
Notifications
You must be signed in to change notification settings - Fork 27
method FormatCond
:FormatCond(cRefDe,cRefAte,nEstilo,cOperator,xFormula)
Cria uma regra de formatação condicional em um intervalo de células
| Parâmetro | Tipo | Descrição | Obrigatório | Obs |
|---|---|---|---|---|
| cRefDe | caractere | Referência inicial (ex: "A1") | X | Use o Ref para converter linha/coluna |
| cRefAte | caractere | Referência final (ex: "A10") | ||
| nEstilo | numérico | Posição do estilo criado pelo ADDdxf (veja abaixo) | X | |
| cOperator | caractere | Operador da regra (tabela abaixo) | X | |
| xFormula | caractere, numérico ou array | Valor/fórmula da comparação | X | Para "between", array com duas posições |
| Operador | Descrição |
|---|---|
| = | Igual |
| != | Diferente |
| > | Maior que |
| >= | Maior ou igual |
| < | Menor que |
| <= | Menor ou igual |
| $ | Contém texto |
| !$ | Não contém |
| between | Está contido (xFormula = array com {de,até}) |
| FORMULA | Usa a fórmula informada em xFormula como expressão |
Nulo
O estilo usado na formatação condicional é criado pelo ADDdxf, que recebe objetos criados pelos métodos abaixo:
| Método | Descrição | Retorno |
|---|---|---|
| Font(nTamanho,cCorRGB,cNome,cfamily,cScheme,lNegrito,lItalico,lSublinhado,lTachado) | Objeto de fonte | Array |
| Preenc(cBgCor,cFgCor,cType) | Objeto de preenchimento (cor Alpha+RGB, tipo padrão "solid") | Array |
| ObjBorda(cTipo,cCor,cModelo) | Objeto de borda ("C"-Cima, "B"-Baixo, "E"-Esquerda, "D"-Direita, "ALL", pode combinar ex: "ED") | Array |
| ADDdxf(aFont,aCorPreenc,aBorda) | Cria o estilo condicional com os objetos acima | Numérico (posição do estilo) |
Local oExcel := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local oFont, oCorPre, oCorPre2, oCorPre3, oBorda
Local nPosVerm, nPosVerd, nPosAmar
oExcel:ADDPlan()
oExcel:Pos(13,1):SetValue(-10)
oExcel:Pos(14,1):SetValue(0)
oExcel:Pos(15,1):SetValue(5)
oExcel:Pos(16,1):SetValue(10)
oExcel:Pos(17,1):SetValue(20)
oExcel:Pos(18,1):SetValue(25)
//Cria objetos para serem usados na formatação
oFont := oExcel:Font(nTamanho=12,cCorRGB="FFFFFF",cNome="Calibri",cfamily="2",lNegrito=.T.,lItalico=.F.,lSublinhado=.F.,lTachado=.F.) //Cor branca negrito
oCorPre := oExcel:Preenc("FF0000") //Fundo vermelho
oCorPre2:= oExcel:Preenc("00FF00") //Fundo verde
oCorPre3:= oExcel:Preenc("FFFF00") //Fundo amarelo
oBorda := oExcel:ObjBorda(cTipo="ALL",cCor="000000") //Borda preta
//Cria os estilos condicionais
nPosVerm := oExcel:ADDdxf(aFont=oFont,aCorPreenc=oCorPre,aBorda=oBorda)
nPosVerd := oExcel:ADDdxf(aFont=oFont,aCorPreenc=oCorPre2,aBorda=oBorda)
nPosAmar := oExcel:ADDdxf(aCorPreenc=oCorPre3,aBorda=oBorda)
oExcel:FormatCond(cRefDe=oExcel:Ref(13,1),cRefAte=oExcel:Ref(18,1),nEstilo=nPosVerm,cOperator="<",xFormula=0) //Número negativo em vermelho
oExcel:FormatCond(cRefDe=oExcel:Ref(13,1),cRefAte=oExcel:Ref(18,1),nEstilo=nPosVerd,cOperator="between",xFormula={10,20}) //Entre 10 e 20 em verde
oExcel:FormatCond(cRefDe=oExcel:Ref(13,1),cRefAte=oExcel:Ref(18,1),nEstilo=nPosAmar,cOperator="=",xFormula="0") //Igual a zero em amarelo
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()Os estilos criados pelo ADDdxf pertencem ao arquivo (workbook) e podem ser reutilizados em outras planilhas (abas).
Além do FormatCond (operadores/fórmula), a classe Xlsx tem métodos prontos para os tipos de formatação condicional mais usados do Excel: barra de dados, conjunto de ícones, duplicados/exclusivos e período temporal.
| Método | Descrição |
|---|---|
| DataBar | Barra de dados proporcional ao valor da célula |
| IconSet | Conjunto de ícones (semáforo, setas, etc.) por faixa de valor |
| FormatCondDup | Destaca valores duplicados ou exclusivos no intervalo (veja abaixo) |
| FormatCondTempo | Destaca datas dentro de um período relativo a hoje (veja abaixo) |
:FormatCondDup(cRefDe,cRefAte,nEstilo,lUnico)
Cria uma regra de formatação condicional para valores duplicados ou exclusivos (únicos) no intervalo
| Parâmetro | Tipo | Descrição | Obrigatório | Obs |
|---|---|---|---|---|
| cRefDe | caractere | Referência inicial (ex: "E2") | X | |
| cRefAte | caractere | Referência final (ex: "E7") | ||
| nEstilo | numérico | Posição do estilo criado pelo ADDdxf (veja acima) | X | |
| lUnico | lógico | .T. destaca valores exclusivos (uniqueValues) / .F. destaca duplicados (duplicateValues) | Default .F. |
Nulo
Local nCont
Local aNome := {"Ana","Bruno","Ana","Carlos","Bruno","Diego"}
Local oExcel := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local oCorPre := oExcel:Preenc("FF0000") //Fundo vermelho
Local oCorPre2 := oExcel:Preenc("00FF00") //Fundo verde
Local nPosVerm := oExcel:ADDdxf(aCorPreenc=oCorPre)
Local nPosVerd := oExcel:ADDdxf(aCorPreenc=oCorPre2)
oExcel:ADDPlan(cNome="FormatCondAvancada")
oExcel:Pos(1,5):SetValue("Nome")
For nCont:=1 to Len(aNome)
oExcel:Pos(nCont+1,5):SetValue(aNome[nCont])
Next
oExcel:FormatCondDup(cRefDe="E2",cRefAte="E7",nEstilo=nPosVerm,lUnico=.F.) //Duplicados em vermelho
oExcel:FormatCondDup(cRefDe="E2",cRefAte="E7",nEstilo=nPosVerd,lUnico=.T.) //Exclusivos em verde
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close():FormatCondTempo(cRefDe,cRefAte,nEstilo,cPeriodo)
Cria uma regra de formatação condicional por período temporal dinâmico (timePeriod), sempre relativo à data atual
| Parâmetro | Tipo | Descrição | Obrigatório | Obs |
|---|---|---|---|---|
| cRefDe | caractere | Referência inicial (ex: "G2") | X | |
| cRefAte | caractere | Referência final (ex: "G7") | ||
| nEstilo | numérico | Posição do estilo criado pelo ADDdxf (veja acima) | X | |
| cPeriodo | caractere | today, yesterday, tomorrow, last7Days, thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth | Default "today" |
Nulo
Local nCont
Local oExcel := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local oCorPre3 := oExcel:Preenc("FFFF00") //Fundo amarelo
Local oCorPre2 := oExcel:Preenc("00FF00") //Fundo verde
Local nPosAmar := oExcel:ADDdxf(aCorPreenc=oCorPre3)
Local nPosVerd := oExcel:ADDdxf(aCorPreenc=oCorPre2)
oExcel:ADDPlan(cNome="FormatCondAvancada")
oExcel:Pos(1,7):SetValue("Data")
For nCont:=1 to 6
oExcel:Pos(nCont+1,7):SetValue(Date()-(nCont-1)*3)
Next
oExcel:FormatCondTempo(cRefDe="G2",cRefAte="G7",nEstilo=nPosAmar,cPeriodo="today") //Hoje em amarelo
oExcel:FormatCondTempo(cRefDe="G2",cRefAte="G7",nEstilo=nPosVerd,cPeriodo="thisWeek") //Esta semana em verde
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()A fórmula gerada usa a célula inicial (cRefDe) como âncora, no mesmo padrão criado pelo próprio Excel ao aplicar "Data de ocorrência" pela interface. Período inválido gera UserException.
- Olá Mundo
- Exemplo Ler xlsx
- Métodos Principais
- New - Construtor da classe
- Open - Abrir planilha (senha opcional)
- GetError - Obter erro da última abertura
- AddPlan - Adicionar planilha
- SetValue - Definir valor da célula
- GetValue - Obter valor da célula
- Save - Salvar planilha
- SetPassword - Proteger com senha de abertura
- OpenApp / Close - Abrir no Excel / Fechar objeto
- SetsheetProtection - Proteger planilha contra edição
- Métodos Posicionamento e referência
- Métodos Células e Conteúdo
- Métodos Estilos
- NewStyle
- NewStyRules
- CorPreenc
- EfeitoPreenc
- AddFont
- Alinhamento
- Borda
- AddFmt
- AddFmtNum
- FormatCond / FormatCondDup / FormatCondTempo
- DataBar - Barra de dados
- IconSet - Conjunto de ícones
- Cellprotection
- Métodos Dimensões e Agrupamento
- Métodos Impressão
- Métodos Imagens
- Gráficos (Charts)
- Visão Geral — Tipos suportados
- Exemplo Completo
- NewChart - Criar gráfico pelo atalho
- Métodos comuns (todos os tipos)
- AddSerie - Adicionar série de dados
- SetTitulo / SetLegenda / SetGrade - Título, legenda e grade
- Set3D - Visualização 3D
- Insert - Inserir na planilha
- Tipos de gráfico
- ChartBar - Colunas e barras
- ChartLine - Linhas
- ChartPie - Pizza
- ChartScatter - Dispersão XY
- ChartArea / ChartStock / ChartRadar - Área, Ações e Radar
- ChartDoughnut / ChartOfPie - Rosca e Pizza de Pizza
- ChartBubble / ChartSurface - Bolhas e Superfície
- ChartCombo - Combinação de gráficos
- Tabela formatada
- Preenchimento em massa (bulk)
- Exemplo 1 - Básico
- BulkNewField - Definição de novas colunas do bulk
- DefBulkLine - Criar definição de campos para preenchimento em massa
- SetValueBulk - Definir valor para preenchimento de bulk
- SetBulkLine - Preenche a linha em bulk do Excel
- FlushBulk - Atualiza dados do Excel
- Preenchimento Excel com Query/Alias
- Exemplo 1 - Básico
- Alias2Tab - Preenche o Excel baseado no alias
- NewFldTab - Altera definição de campos ou cria novo campo
- DefSubTotal - Cria subtotal e agrupamento de subtotal
- NewRuleLine - Regra de formação de linhas