Referência de sintaxe de formatação
elmType
Especifica o tipo de elemento a ser criado. Os elementos válidos incluem:
div
span
a
img
svg
path
button
p
filepreview
Qualquer outro valor resultará em um erro.
filepreview
Utilize o especial elmType
filepreview
com o src
atributo definido para @thumbnail.<Size>
ver miniaturas de ficheiros na sua biblioteca de documentos.
Se a miniatura for carregada com êxito, um pequeno ícone de tipo de marca ficará visível na parte inferior esquerda. Se a miniatura não for carregada (ou se o tipo de ficheiro não suportar miniaturas), será apresentado um ícone de tipo de ficheiro .
"elmType": "filepreview",
"attributes": {
"src": "@thumbnail.medium"
}
img src security
São permitidas imagens dos seguintes domínios:
- domínio de inquilino, domínios multigeográficos configurados e domínios personalizados (
company.sharepoint.com
) -
cdn.office.net
, ,akamaihd.net
static2.sharepointonline.com
CDNs
A maioria das outras origens de imagens externas estão bloqueadas por predefinição em formatores personalizados. Para incluir imagens externas e permitir domínios ou CDNs específicos, o domínio tem de ser adicionado a uma definição ao nível do site. Para obter mais informações, consulte: Permitir ou restringir a capacidade de incorporar conteúdos em páginas do SharePoint
txtContent
Uma propriedade opcional que especifica o conteúdo de texto do elemento especificado por elmType
. O valor dessa propriedade pode ser uma cadeia de caracteres (incluindo cadeias de caracteres especiais) ou um objeto Expression.
estilo
Uma propriedade opcional que especifica atributos de estilo a serem aplicados ao elemento especificado por elmType
. Trata-se de um objeto com pares nome-valor que correspondem a nomes e valores de CSS. Os valores de cada propriedade no objeto de estilo podem ser uma cadeia de caracteres (incluindo cadeias de caracteres especiais) ou um objeto Expression. Os seguintes atributos de estilo são permitidos.
'background-color'
'fill'
'background-image'
'border'
'border-bottom'
'border-bottom-color'
'border-bottom-style'
'border-bottom-width'
'border-color'
'border-left'
'border-left-color'
'border-left-style'
'border-left-width'
'border-right'
'border-right-color'
'border-right-style'
'border-right-width'
'border-style'
'border-top'
'border-top-color'
'border-top-style'
'border-top-width'
'border-width'
'outline'
'outline-color'
'outline-style'
'outline-width'
'border-bottom-left-radius'
'border-bottom-right-radius'
'border-radius'
'border-top-left-radius'
'border-top-right-radius'
'box-decoration-break'
'box-shadow'
'box-sizing'
'overflow-x'
'overflow-y'
'overflow-style'
'rotation'
'rotation-point'
'opacity'
'cursor'
'height'
'max-height'
'max-width'
'min-height'
'min-width'
'width'
'flex-grow'
'flex-shrink'
'flex-flow'
'flex-direction'
'flex-wrap'
'flex'
'justify-content'
'align-items'
'box-align'
'box-direction'
'box-flex'
'box-flex-group'
'box-lines'
'box-ordinal-group'
'box-orient'
'box-pack'
'font'
'font-family'
'font-size'
'font-style'
'font-variant'
'font-weight'
'font-size-adjust'
'font-stretch'
'grid-columns'
'grid-rows'
'margin'
'margin-bottom'
'margin-left'
'margin-right'
'margin-top'
'column-count'
'column-fill'
'column-gap'
'column-rule'
'column-rule-color'
'column-rule-style'
'column-rule-width'
'column-span'
'column-width'
'columns'
'padding'
'padding-bottom'
'padding-left'
'padding-right'
'padding-top'
'bottom'
'clear'
'clip'
'display'
'float'
'left'
'overflow'
'position'
'right'
'top'
'visibility'
'z-index'
'border-collapse'
'border-spacing'
'caption-side'
'empty-cells'
'table-layout'
'color'
'direction'
'letter-spacing'
'line-height'
'text-align'
'text-decoration'
'text-indent'
'text-transform'
'unicode-bidi'
'vertical-align'
'white-space'
'word-spacing'
'hanging-punctuation'
'punctuation-trim'
'text-align-last'
'text-justify'
'text-outline'
'text-overflow'
'text-shadow'
'text-wrap'
'word-break'
'word-wrap'
'stroke'
'fill-opacity'
'--inline-editor-border-width'
'--inline-editor-border-style'
'--inline-editor-border-radius'
'--inline-editor-border-color'
'-webkit-line-clamp'
'object-fit'
'transform' // Only translate(arg) and translate(arg, arg) are currently supported
O exemplo a seguir mostra o valor de um objeto de estilo. Neste exemplo, duas propriedades de estilo (padding
e background-color
) serão aplicadas. O valor padding
é um valor de cadeia de caracteres embutido em código. O valor background-color
é uma Expression que é avaliada como vermelho (#ff0000
) ou verde (#00ff00
), dependendo se o valor do campo atual (especificado pelo @currentField
) é ou não inferior a 40. Para obter mais informações, veja a secção Objeto de expressão.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"padding": "4px",
"background-color": {
"operator": "?",
"operands": [
{
"operator": "<",
"operands": [
"@currentField",
40
]
},
"#ff0000",
"#00ff00"
]
}
}
}
Aqui está o mesmo exemplo acima usando a sintaxe da expressão de estilo do Excel:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"padding": "4px",
"background-color": "=if(@currentField < 40, '#ff0000', '#00ff00')"
}
}
attributes
A attributes
propriedade opcional especifica mais atributos a adicionar ao elemento especificado por elmType
. Trata-se de um objeto com pares nome-valor. Nomes de atributos devem ser um dos seguintes:
- href
- rel
- src
- class
- destino
- title
- role
- iconName
- d
- aria
- interceptação de dados
- viewBox
- preserveAspectRatio
- draggable
Qualquer outro nome de atributo resultará em um erro. Valores de atributos podem ser cadeias de caracteres ou objetos Expression. O exemplo a seguir adiciona dois atributos (target
e href
) ao elemento especificado por elmType
. O atributo target
está embutido em código a uma cadeia de caracteres. O atributo href
é uma expressão que será avaliada em tempo de execução como http://finance.yahoo.com/quote/
+ o valor do campo atual (@currentField
).
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"target": "_blank",
"href": "='http://finance.yahoo.com/quote/' + @currentField"
}
children
A children
propriedade opcional especifica os elementos subordinados do elemento especificado por elmType
. O valor é especificado como uma matriz de objetos elm
. Pode haver um nível arbitrário de aninhamento. Se um elemento tiver a propriedade txtContent
, as propriedades filho serão ignoradas.
debugMode
A debugMode
propriedade opcional destina-se à depuração. Ela produz mensagens de erro e registra avisos no console.
forEach
A forEach
propriedade opcional permite que um elemento se duplique para cada membro de um campo de múltiplos valores específico ou de uma matriz. O valor da "forEach"
propriedade deve estar no formato de "iteratorName in @currentField"
ou ou "iteratorName in [$FieldName]"
"iteratorName in Expression-Returning-An-Array"
.
iteratorName
representa o nome da variável de iterador que é utilizada para representar o membro atual do campo de valores múltiplos. O nome do iterador pode ser qualquer combinação de carateres alfanuméricos e um caráter de sublinhado (_
) que não começa com um dígito.
O campo utilizado no ciclo tem de estar num tipo de campo suportado com opções de valores múltiplos ativadas: Pessoa, Pesquisa e Escolha. Também pode ser utilizada uma expressão que devolva uma matriz.
No elemento com forEach
ou respetivos elementos subordinados, a variável de iterador pode ser referida como se fosse um novo campo. O índice iterador pode ser acessado com o operador loopIndex
.
forEach
não pode ser aplicado ao elemento raiz e não comporá nenhum elemento se não existir nenhum valor no campo.
Veja Formatar campos com múltiplos valores para obter exemplos.
customRowAction
Elementos button
podem ser usados para iniciar uma ação específica no item pai. Cada button
elemento tem uma propriedade necessária, customRowAction
, que especifica uma action
que é tirada quando o botão é selecionado. Esta ação deve ser um dos seguintes valores:
defaultClick: botões com esta ação farão a mesma coisa que clicar no item de lista em um modo de exibição não personalizado. O exemplo seguinte demonstra um botão que, quando selecionado, simula uma seleção no item, o que resulta na abertura do item de lista. Adicionar este botão de exemplo a uma biblioteca de documentos simula uma seleção no ficheiro ou pasta, o que resulta na abertura do ficheiro ou pasta.
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "button", "txtContent": "Open this item", "customRowAction": { "action": "defaultClick" } }
partilhar: selecionar o botão irá abrir a caixa de diálogo de partilha. Segue-se um exemplo deste tipo de botão:
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "button", "txtContent": "Share this item", "customRowAction": { "action": "share" } }
eliminar: selecionar o botão abrirá a caixa de diálogo de confirmação eliminar.
editProps: selecionar o botão irá abrir a página de propriedades do item no modo de edição.
openContextMenu: selecionar o botão irá abrir o menu de contexto predefinido do item.
setValue: selecionar o elemento irá atualizar o item com os valores de campo fornecidos.
{ "elmType": "div", "txtContent": "[$FieldName]", "customRowAction":{ "action": "setValue", "actionInput": { "FieldInternalName_1": "FieldValue_1", "FieldInternalName_2": "FieldValue_2", } } }
executeFlow: selecionar o botão iniciará o Fluxo especificado, especificado pelo ID dentro do
actionParams
atributo . Para um exemplo disso, confira Criar um botão para iniciar um Fluxo. O exemplo seguinte demonstra este tipo de botão:{ "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json", "elmType": "button", "txtContent": "It's Flow Time!", "customRowAction": { "action": "executeFlow", "actionParams": "{\"id\":\"f7ecec0b-15c5-419f-8211-302a5d4e94f1\", \"headerText\":\"It's Flow Time!\",\"runFlowButtonText\":\"Do it\"}" } }
O atributo
actionParams
pode ter as seguintes opções ao usar a açãoexecuteFlow
:- id: ID do Fluxo a ser iniciado (obrigatório)
- headerText: coloca o texto na parte superior do painel de fluxo (opcional)
- runFlowButtonText: coloca o texto do botão principal no painel de fluxo (opcional)
incorporar: clicar no botão irá abrir uma nota de aviso com conteúdo incorporado no mesmo. O conteúdo será determinado pelo URL fornecido no
src
atributo emactionInput
. Também pode controlar oheight
ewidth
da nota de aviso com oactionInput
.Observação
- O
src
precisa de ser apenas aurl
parte de um código incorporado gerado por uma aplicação (geralmente encontrado nosrc
atributo doiframe
elemento). - Esta ação só está disponível na versão mais recente da Aplicação Listas da Microsoft.
Para obter mais informações sobre como permitir ou restringir domínios, consulte Permitir ou restringir a capacidade de incorporar conteúdo no SharePoint Listas através de formadores personalizados.
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "button", "customRowAction": { "action": "embed", "actionInput": { "src": "https://www.relecloud.com/embed/ll00hWQMJxQ", "height": "350", "width": "700" } }, "txtContent": "Click here to open recipe video 👩🍳" }
O atributo
actionInput
pode ter as seguintes opções ao usar a açãoembed
:- src: o URL do conteúdo que pretende incorporar. (obrigatório)
- altura: a altura da nota de aviso na qual o conteúdo incorporado será composto. O valor padrão é 300. (opcional)
- largura: a largura da nota de aviso na qual o conteúdo incorporado será composto. O valor padrão é 300. (opcional)
- O
customCardProps
Adicione uma card personalizada ao elemento , que aparece ao pairar o rato ou click
ao evento. As seguintes personalizações estão disponíveis:
-
"formatter"
: objeto JSON que define a formatação para cartões personalizados. -
"openOnEvent"
: evento no qual o customCard deve ser aberto.- Valores válidos:
click
,hover
- Valores válidos:
-
"directionalHint"
: especifique a direção relativa ao destino no qual o card personalizado será posicionado. Esta é a localização preferencial, mas não é garantida consoante o espaço.- Valores válidos:
bottomAutoEdge
, ,bottomCenter
,bottomLeftEdge
bottomRightEdge
,leftBottomEdge
,leftCenter
,leftTopEdge
,rightBottomEdge
,rightCenter
, ,rightTopEdge
,topAutoEdge
, , ,topLeftEdge
topCenter
topRightEdge
- Valores válidos:
-
"isBeakVisible"
: especifique se o beak deve ser mostrado ou não. -
"beakStyle"
: especifica o objeto de estilo para o bico do card personalizado.
defaultHoverField
Adiciona o card de perfil para os campos de pessoas ou o hovercard do ficheiro para ficheiros na biblioteca de documentos.
-
"defaultHoverField": "[$Editor]"
adiciona um cartão de perfil para o campo do editor -
"defaultHoverField": "[$FileLeafRef]"
adiciona um cartão de foco de arquivo em documentLibrary
columnFormatterReference
Ele será substituído pelo formatador JSON da coluna referenciada. A referência de vários níveis não é suportada.
As referências para modelos de formatadores de colunas de várias escolhas e formadores de colunas não baseados em modelos não são suportadas.
{
"columnFormatterReference": "[$FieldName]"
}
inlineEditField
Adiciona o editor de campo na coluna referenciada.
{
"elmType": "div",
"inlineEditField": "[$FieldName]",
"txtContent": "[$FieldName]"
}
filePreviewProps
É filePreviewProps
uma propriedade opcional que permite substituir os estilos predefinidos do ícone de tipo de ficheiro e do ícone de tipo de marca em filepreview
.elmType.
O fileTypeIconClass
e brandTypeIconClass
pode ser utilizado para fornecer nomes de classe CSS ao ícone de tipo de ficheiro e aos elementos do ícone de tipo de marca, respetivamente.
O fileTypeIconStyle
e brandTypeIconStyle
pode ser utilizado para fornecer estilos ao ícone de tipo de ficheiro e ao ícone de tipo de marca, respetivamente. Estes estilos terão precedência sobre os mesmos estilos provenientes das classes CSS fornecidas pelas duas propriedades acima.
"elmType": "filepreview",
"attributes": {
"src": "@thumbnail.medium",
},
"filePreviewProps": {
"fileTypeIconClass": "sp-css-borderColor-neutralLight",
"fileTypeIconStyle": {
"width": "100px"
},
"brandTypeIconClass": "sp-css-borderColor-neutralLight",
"brandTypeIconStyle": {
"width": "68px"
}
}
Expressões
Os valores para , propriedades de estilo e propriedades de atributo podem ser expressos como expressões para txtContent
que sejam avaliados no runtime com base no contexto do campo (ou linha) atual. Objetos Expression podem ser aninhados para conter outros objetos Expression.
As expressões podem ser escritas com expressões de estilo Excel no SharePoint Online e Edição de Assinatura do SharePoint Server a partir da atualização de funcionalidades 22H2 ou com expressões de Árvore de Sintaxe Abstrata no SharePoint Online, Edição de Assinatura do SharePoint Server e SharePoint Server 2019.
Todos os campos no ViewFields
podem ser referidos em expressões, mesmo que estejam marcados como Explicit
.
Expressões estilo Excel
Todas as expressões estilo Excel começam com um sinal (=
). Este estilo de expressão só está disponível no SharePoint Online e Edição de Assinatura do SharePoint Server a partir da atualização de funcionalidades 22H2. Este estilo de expressão não está disponível em SharePoint Server 2019 ou Edição de Assinatura do SharePoint Server antes da atualização de funcionalidades 22H2.
Esta expressão condicional simples avalia none
se @me
não é igual a [$Author.email]
e avalia o ''
contrário:
=if(@me != [$Author.email], 'none', '')
As instruções if/else mais complexas podem ser escritas da seguinte forma:
=if([$Sentiment] <= 0.3, 'sp-field-severity--blocked', if([$Sentiment] < 0.9,'sp-field-severity--warning','sp-field-severity--good'))
Os operadores não condicionais que tomam um ou dois operandos podem ser escritos da seguinte forma:
=[$foo] * -7
=sin(@currentField)
=toString(60 + (sin(6.2831853 * @currentField) * 60))
Expressões de Árvore de Sintaxe Abstrata
O exemplo seguinte contém um objeto Expression que executa a expressão:
(@currentField > 40) ? '100%' : (((@currentField * 2.5).toString() + '%')
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"operator": "?",
"operands": [
{
"operator": ">",
"operands": [
"@currentField",
"40"
]
},
"100%",
{
"operator": "+",
"operands": [
{
"operator": "toString()",
"operands": [
{
"operator": "*",
"operands": [
"@currentField",
2.5
]
}
]
},
"%"
]
}
]
}
Operadores
Operadores especificam o tipo de operação a ser realizada. Os valores de operador válidos incluem:
+
-
/
*
<
>
%
==
!=
<=
>=
||
&&
toString()
Number()
Date()
cos
sin
?
:
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
indexOf
toLowerCase
join
length
abs
loopIndex
floor
ceiling
pow
substring
getDate
getMonth
getYear
toUpperCase
lastIndexOf
startsWith
endsWith
replace
replaceAll
padStart
padEnd
getThumbnailImage
getUserImage
addDays
addMinutes
appendTo
removeFrom
split
Operadores aritméticos binários – os operadores binários aritméticos padrão que esperam dois operandos incluem:
+
-
/
*
<
>
%
==
!=
<=
>=
Operadores unários – os operadores unários padrão que esperam apenas um operando são:
-
toString()
: devolve uma cadeia que representa o objeto-
"txtContent": "=toString(45)"
resulta em "45"
-
-
Number()
: devolve o valor numérico, se o operando não for um número, NaN é devolvido-
"txtContent": "=Number('365')"
resulta em "365" -
"txtContent": "=Number('Wowee')"
resulta em NaN -
"txtContent": "=Number(Date('12/26/1981'))"
resulta em 378190800000
-
-
Date()
: devolve um objeto datetime do parâmetro (converte cadeias ou números em datas, sensíveis à região)-
"txtContent": "=Date('12/26/1981')"
resulta em 26/12/1981, 12:00:00
-
-
cos
: devolve o cosseno do ângulo especificado que deve ser especificado em radianos-
"txtContent": "=cos(5)"
resulta em 0.28366218546322625
-
-
sin
: devolve o seno de um número-
"txtContent": "=sin(90)"
resulta em 0.8939966636005579
-
-
toDateString()
: devolve uma data num formato simples-
"txtContent": "=toDateString(@now)"
O resultado não varia com base na região do utilizador e será semelhante a "03 de agosto de 2022"
-
-
toLocaleString()
: devolve uma representação sensível ao idioma de uma data-
"txtContent":"=toLocaleString(@now)"
os resultados variam com base na região do utilizador, mas en-us parece "05/02/2019, 13:22:24"
-
-
toLocaleDateString()
: devolve uma representação sensível ao idioma apenas da parte da data de uma data-
"txtContent":"=toLocaleDateString(@now)"
os resultados variam com base na região do utilizador, mas en-us parece "2/5/2019"
-
-
toLocaleTimeString()
: devolve uma representação sensível ao idioma apenas da parte da hora de uma data-
"txtContent":"=toLocaleTimeString(@now)"
os resultados variam consoante a região do utilizador, mas en-us é semelhante a "1:22:24 PM"
-
-
toLowerCase
: devolve o valor convertido em minúsculas (só funciona em cadeias) – Apenas disponível no SharePoint Online-
"txtContent":"=toLowerCase('DogFood')"
resulta em "dogfood"
-
-
abs
: devolve o valor absoluto de um determinado número – Apenas disponível no SharePoint Online-
"txtContent":"=abs(-45)"
resulta em 45
-
-
length
: devolve o número de itens numa matriz (campo de escolha ou pessoa com seleção múltipla), para todos os outros tipos de valor, devolve 1 quando verdadeiro e 0 quando falso. NÃO fornece o comprimento de um valor de sequência (confira a solução alternativaindexOf
explicada posteriormente para essa operação). - Disponível somente no SharePoint Online-
"txtContent":"=length(@currentField)"
pode resultar em 2 se existirem dois valores selecionados -
"txtContent":"=length('Some Text')"
resulta em 1 -
"txtContent":"=length('')"
resulta em 0 -
"txtContent":"=length(45)"
resulta em 1 -
"txtContent":"=length(0)"
resulta em 0
-
-
floor
: devolve o maior número inteiro menor ou igual a um determinado número. - Disponível somente no SharePoint Online-
"txtContent":"=floor(45.5)"
resulta em 45
-
-
ceiling
: arredonda o número especificado para o número inteiro ou número inteiro maior seguinte. - Disponível somente no SharePoint Online-
"txtContent":"=ceiling(45.5)"
resulta em 46
-
-
getDate
: devolve o dia do mês da data especificada. - Disponível somente no SharePoint Online-
"txtContent":"=getDate(Date('12/26/1981'))"
resulta em "26"
-
-
getMonth
: devolve o mês na data especificada de acordo com a hora local, como um valor baseado em zero (em que zero indica o primeiro mês do ano). - Disponível somente no SharePoint Online-
"txtContent":"=getMonth(Date('12/26/1981'))"
resulta em 11
-
-
getYear
: devolve o ano da data especificada. - Disponível somente no SharePoint Online-
"txtContent":"=getYear(Date('12/26/1981'))"
resulta em 1981
-
-
toUpperCase
: devolve o valor convertido em maiúsculas (só funciona em cadeias) – Apenas disponível no SharePoint Online-
"txtContent":"=toUpperCase('DogFood')"
resulta em "DOGFOOD"
-
Operadores binários – Os seguintes são os operadores que esperam dois operandos:
-
indexOf
: leva dois operandos. O primeiro é o texto (ou matriz) em que você deseja pesquisar, o segundo é o texto que você deseja pesquisar. Retorna o valor de índice da primeira ocorrência do termo de pesquisa dentro da cadeia de caracteres (ou matriz). Índices começam com 0. Se o termo de pesquisa não for encontrado no texto (ou matriz), é devolvido -1. Esse operador diferencia maiúsculas de minúsculas. - Disponível somente no SharePoint Online-
"txtContent": "=indexOf('DogFood', 'Dog')"
resulta em 0 -
"txtContent": "=indexOf('DogFood', 'F')"
resulta em 3 -
"txtContent": "=indexOf('DogFood', 'Cat')"
resulta em -1 -
"txtContent": "=indexOf('DogFood', 'f')"
resulta em -1
-
-
join
: leva dois operandos. A primeira é uma matriz (pessoa com seleção múltipla ou campo de opção) e a segunda é a cadeia de caracteres de separação. Retorna uma concatenação de cadeia de caracteres dos valores da matriz separados pela cadeia de caracteres de separação. - Disponível somente no SharePoint Online-
"txtContent": "=join(@currentField, ', ')"
pode resultar em "Maçã, Laranja, Cereja" (dependendo dos valores selecionados) -
"txtContent": "=join(@currentField.title, '|')"
pode resultar em "Megan Bowen|Alex Wilber" (dependendo das pessoas selecionadas)
-
-
pow
: devolve a base à potência expoente. - Disponível somente no SharePoint Online-
"txtContent":"=pow(2,3)"
resulta em 8
-
-
lastIndexOf
: devolve a posição da última ocorrência de um valor especificado numa cadeia (ou matriz)-
"txtContent": "=lastIndexOf('DogFood DogFood', 'Dog')"
resulta em 8 -
"txtContent": "=lastIndexOf('DogFood DogFood', 'F')"
resulta em 11 -
"txtContent": "=lastIndexOf('DogFood DogFood', 'Cat')"
resulta em -1 -
"txtContent": "=lastIndexOf('DogFood DogFood', 'f')"
resulta em -1
-
-
startsWith
: determina se uma cadeia começa com os carateres de uma cadeia especificada-
"txtContent":"=startsWith('DogFood', 'Dog')"
resulta em verdadeiro -
"txtContent":"=startsWith('DogFood', 'Food')"
resulta em falso
-
-
endsWith
: determina se uma cadeia termina com os carateres de uma cadeia especificada-
"txtContent":"=endsWith('DogFood', 'Dog')"
resulta em falso -
"txtContent":"=endsWith('DogFood', 'Food')"
resulta em verdadeiro
-
-
getUserImage
: devolve um URL que aponta para a imagem de perfil do utilizador para um determinado e-mail e tamanho preferencial-
"src":"=getUserImage('kaylat@contoso.com', 'small')"
retorna uma URL que aponta para a imagem de perfil do usuário em resolução pequena -
"src":"=getUserImage('kaylat@contoso.com', 's')"
retorna uma URL que aponta para a imagem de perfil do usuário em resolução pequena -
"src":"=getUserImage('kaylat@contoso.com', 'medium')"
retorna uma URL que aponta para a imagem de perfil do usuário em resolução média -
"src":"=getUserImage('kaylat@contoso.com', 'm')"
retorna uma URL que aponta para a imagem de perfil do usuário em resolução média -
"src":"=getUserImage('kaylat@contoso.com', 'large')"
retorna uma URL apontando para a imagem de perfil do usuário em resolução grande -
"src":"=getUserImage('kaylat@contoso.com', 'l')"
retorna uma URL apontando para a imagem de perfil do usuário em resolução grande
-
-
appendTo
: devolve uma matriz com a entrada especificada anexada à matriz especificada-
"txtContent": "=appendTo(@currentField, 'Choice 4')"
devolve uma matriz com "Escolha 4" adicionada à @currentField matriz -
"txtContent": "=appendTo(@currentField, 'kaylat@contoso.com')"
devolve uma matriz com "kaylat@contoso.com" adicionado à @currentField matriz
-
-
removeFrom
: devolve uma matriz com a entrada especificada removida da matriz especificada, se estiver presente-
"txtContent": "=removeFrom(@currentField, 'Choice 4')"
devolve uma matriz com "Escolha 4" removida da @currentField matriz -
"txtContent": "=removeFrom(@currentField, 'kaylat@contoso.com')"
devolve uma matriz com "kaylat@contoso.com" removido da @currentField matriz
-
-
split
: divide a cadeia especificada numa lista ordenada de subcadeias ao procurar o padrão especificado e devolve uma matriz destas subcadeias-
"txtContent": "=split('Hello World', ' ')"
devolve uma matriz com duas cadeias - 'Hello' e 'World'
-
-
addDays
: devolve um objeto datetime com dias adicionados (ou deduzidos) do valor datetime especificado-
"txtContent": "=addDays(Date('11/14/2021'), 3)"
retorna 17/11/2021, 00:00:00 -
"txtContent": "=addDays(Date('11/14/2021'), -1)"
retorna 13/11/2021, 00:00:00
-
-
addMinutes
: devolve um objeto datetime com minutos adicionados (ou deduzidos) do valor datetime especificado-
"txtContent": "=addMinutes(Date('11/14/2021'), 3)"
retorna 14/11/2021, 00:03:00 -
"txtContent": "=addMinutes(Date('11/14/2021'), -1)"
retorna 13/11/2021, 11:59:00
-
Operadores ternários – Os seguintes são os operadores que esperam três operandos:
substring
: devolve a parte da cadeia entre os índices de início e de fim. - Disponível somente no SharePoint Online-
"txtContent":"=substring('DogFood', 3, 4)"
resulta em F -
"txtContent":"=substring('DogFood', 4, 3)"
resulta em F -
"txtContent":"=substring('DogFood', 3, 6)"
resulta em Foo -
"txtContent":"=substring('DogFood', 6, 3)"
resulta em Foo
O método subcadeia() devolve a parte da cadeia entre os índices de início e de fim ou até ao fim da cadeia.
-
replace
: procura um valor especificado numa cadeia (ou matriz) e devolve uma nova cadeia (ou matriz) onde o valor especificado é substituído. Para cadeias, apenas a primeira instância do valor será substituída.-
"txtContent":"=replace('Hello world', 'world', 'everyone')"
resulta em Olá a todos -
"txtContent":"=replace([$MultiChoiceField], 'Choice 1', 'Choice 2')"
retorna uma matriz substituindo a Opção 1 pela Opção 2 -
"txtContent":"=replace([$MultiUserField], @me, 'kaylat@contoso.com')"
devolve uma matriz substituindo @me por "kaylat@contoso.com"
-
replaceAll
: procura um valor especificado numa cadeia de carateres e devolve uma nova cadeia (ou matriz) onde o valor especificado é substituído. Para cadeias, todas as instâncias do valor serão substituídas.-
"txtContent":"=replaceAll('H-e-l-l-o W-o-r-l-d', '-', '')"
resulta em Olá, Mundo
-
padStart
: preenche a cadeia atual com outra cadeia até que a cadeia resultante atinja o comprimento especificado. O preenchimento é aplicado desde o início da cadeia de caracteres atual.-
"txtContent":"=padStart('DogFood', 10, 'A')"
resulta em AAADogFood -
"txtContent":"=padStart('DogFood', 10, 'AB')"
resulta em ABADogFood -
"txtContent":"=padStart('DogFood', 5, 'A')"
resulta em DogFood
-
padEnd
: preenche a cadeia atual com uma determinada cadeia até que a cadeia resultante atinja o comprimento especificado. O preenchimento é aplicado do fim da cadeia de caracteres atual.-
"txtContent":"=padEnd('DogFood', 10, 'A')"
resulta em DogFoodAAA -
"txtContent":"=padEnd('DogFood', 10, 'AB')"
resulta em DogFoodABA -
"txtContent":"=padEnd('DogFood', 5, 'A')"
resulta em DogFood
-
getThumbnailImage
: devolve um URL que aponta para uma imagem para um determinado campo de imagem e tamanho preferencial.-
"src":"=getThumbnailImage([$ImageField], 400, 200)"
resulta num URL que aponta para uma imagem para um determinado campo de imagem com 400 largura e 200 alturas
-
Operador condicional – O operador condicional é:
-
?
: Operações condicionais escritas na sintaxe Abstract Tree usam?
como operador. Isto é para obter uma expressão equivalente aa ? b : c
, em que, se a expressãoa
for avaliada como verdadeira, o resultado éb
, caso contrário, o resultado éc
. Para expressões de estilo excel, escreva-as com uma instruçãoif
. De qualquer forma, há três operandos. O primeiro é a condição que deve ser avaliada. O segundo é o resultado quando a condição for verdadeira. O terceiro é o resultado quando a condição for falsa.-
"txtContent":"=if(4 < 5, 'yes', 'no')"
resulta em "sim" -
"txtContent":"=if(4 > 5, 'yes', 'no')"
resulta em "não"
-
Operadores relacionados com campos de valores múltiplos – os seguintes operadores só são utilizados num contexto com campos de valores múltiplos do tipo Pessoa, Pesquisa ou Escolha.
length
join
loopIndex
length
, quando fornecida com um nome de campo, retorna o número de membros em um campo de vários valores. Quando for fornecido um campo de valor único, length
devolverá 1 quando existir um valor nesse campo.
join
concatena valores em um campo de vários valores com um separador especificado. O primeiro operando deve apontar para um valor num campo de valores múltiplos, por exemplo "@currentField.lookupValue"
, . "[$AssignedTo.title]"
O segundo operando deve ser uma cadeia de caracteres literal que é o separador que reúne os valores.
loopIndex
, quando fornecido com o nome da variável de iterador, devolve o índice atual (a partir de 0) do iterador. O nome do iterador tem de ser fornecido como um literal de cadeia.
loopIndex
só funcionaria dentro do elemento com os respectivos forEach
habilitados ou seus elementos filhos.
Para obter exemplos, veja Formatar campos de valores múltiplos.
Operadores relacionados com cadeias – alguns dos operadores anteriormente detalhados podem ser utilizados ao trabalhar com valores de cadeia:
+
-
indexOf
(para solução de comprimento de cadeia)
+
pode ser utilizado quando é necessário concatenar cadeias, por exemplo:
"txtContent": "=[$column1] + ' ' + [$column2] + 'some other text'"
indexOf
Uma vez que o operador length
não funciona para tipos de valor de cadeia (devolverá 1 ou 0), indexOf
pode servir-nos como uma boa solução para obter o comprimento de uma cadeia, por exemplo: indexOf([$column1] + '^', '^')
. Vamos utilizar '^'
ou qualquer outro caráter para utilizar para descobrir o fim da cadeia.
Operandos
Especifica os parâmetros ou operandos para uma expressão. Trata-se de uma matriz de objetos Expression ou valores base.
Valores de cadeias de caracteres especiais
Os valores para txtContent
, estilos e atributos podem ser cadeias de caracteres ou objetos Expression. Existe suporte para alguns padrões de cadeias de caracteres especiais para recuperar valores dos campos na lista e no contexto do usuário.
"@currentField"
Avaliará o valor do campo atual.
Alguns tipos de campos são representados como objetos. Para gerar um valor de um objeto, consulte uma propriedade específica dentro desse objeto. Por exemplo, se o campo atual for um campo de pessoa/grupo, especifique @currentField.title
para recuperar o nome da pessoa, que normalmente é mostrado em exibições de lista. A seguir, os tipos de campo representados como objetos com uma lista de suas propriedades.
Observação
O @currentField.title
retorna o nome de uma pessoa por padrão. No entanto, se Show Field do campo de pessoa tiver sido ajustado, ele poderá alterar o valor da propriedade title
. Por exemplo, um campo de pessoa com Show Field configurado como Department terá o departamento da pessoa para a propriedade title
.
Campos de pessoas
O objeto do campo de pessoas tem as seguintes propriedades ( com valores de exemplo):
{
"id": "122",
"title": "Kalya Tucker",
"email": "kaylat@contoso.com",
"sip": "kaylat@contoso.com",
"picture": "https://contoso.sharepoint.com/kaylat_contoso_com_MThumb.jpg?t=63576928822",
"department":"Human Resources",
"jobTitle":"HR Manager"
}
O campo Pessoas pode ter cartões de foco de perfil juntamente com formatação:
{
"elmType": "div",
"txtContent": "[$Editor.title]",
"defaultHoverField": "[$Editor]"
}
Campos de Data/hora
O valor de campos de Data/Hora pode ser recuperado de várias maneiras diferentes, dependendo do formato de data que você deseja exibir. Existe suporte aos seguintes métodos para converter valores de data em formatos específicos:
-
toLocaleString()
- exibe um tipo de data totalmente expandido com data e hora. -
toLocaleDateString()
- exibe um tipo de data apenas com a data. -
toLocaleTimeString()
- exibe um tipo de data apenas com a hora.
Por exemplo, o seguinte JSON exibirá o campo atual (supondo que ele seja um campo de data) como uma cadeia de caracteres de data e hora.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"txtContent": {
"operator": "toLocaleString()",
"operands" : ["@currentField"]
}
}
Aqui está o mesmo exemplo acima usando a sintaxe da expressão de estilo do Excel:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"txtContent": "=toLocaleString(@currentField)"
}
Campos do localização
O objeto do campo de localização tem as seguintes propriedades (com valores de exemplo):
{
"Address": {
"City": "Knoxville",
"CountryOrRegion": "United States",
"State": "TN",
"Street": "963 Worlds Fair Park Dr"
},
"Coordinates": {
"Latitude": "35.961673736572266",
"Longitude": "-83.92420959472656"
},
"DisplayName": "World's Fair Park",
"LocationUri": "https://www.bingapis.com/api/v6/localentities/8346bf26-6da4-104c-6ba5-2334b83f6ac8?setLang=en"
}
O exemplo a seguir mostra como um campo de localização pode ser usado em um campo atual.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
"elmType": "div",
"style": {
"display": "block"
},
"children": [
{
"elmType": "a",
"txtContent": "@currentField.DisplayName",
"attributes": {
"href": "='https://www.bing.com/maps?cp=' + @currentField.Coordinates.Latitude + '~' + @currentField.Coordinates.Longitude + '&lvl=17&sV=2'",
"target": "_blank",
"title": "=@currentField.Coordinates.Latitude + ', ' + @currentField.Coordinates.Longitude"
},
"style": {
"display": "block"
}
},
{
"elmType": "div",
"txtContent": "@currentField.Address.Street"
},
{
"elmType": "div",
"txtContent": "=@currentField.Address.City + ', ' + @currentField.Address.State"
},
{
"elmType": "div",
"txtContent": "@currentField.Address.CountryOrRegion"
}
]
}
Campos de Pesquisa
O objeto do campo de pesquisa tem as seguintes propriedades (com valores de exemplo):
{
"lookupId": "100",
"lookupValue": "North America",
}
O exemplo a seguir mostra como um campo de pesquisa pode ser usado em um campo atual.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "a",
"txtContent": "@currentField.lookupValue",
"attributes": {
"href": {
"operator": "+",
"operands": [
"https://contoso.sharepoint.com/teams/Discovery/Lists/Regions/DispForm.aspx?ID=",
"@currentField.lookupId"
]
},
"target": "_blank"
}
}
Campos de hiperlink
O objeto do campo de hiperlink tem a seguinte propriedade (com valor de exemplo):
{
"desc": "SharePoint Patterns and Practices",
}
Para fazer referência ao valor de URL, use @currentField
.
O exemplo a seguir mostra como um campo de hiperlink pode ser usado em um campo atual.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "a",
"txtContent": "@currentField.desc",
"attributes": {
"href": "@currentField",
"target": "_blank"
}
}
Campos de imagem
O objeto de campo de imagem tem a seguinte fileName
propriedade:
{
"fileName": "image.png",
}
Observação
A partir de julho de 2024, apenas a fileName
propriedade tem um valor.
O exemplo a seguir mostra como é possível utilizar um campo de imagem em um campo atual.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "img",
"attributes": {
"src": "=getThumbnailImage(@currentField, 400, 300)",
"alt": "@currentField.fileName"
},
"style": {
"width": "100%",
"max-width": "100%"
}
}
campos de Status de Aprovação
O objeto do campo de Status de Aprovação tem a seguinte propriedade (com valor de exemplo):
{
"displayValue": "Approved",
"numeric": 0
}
displayValue
é uma cadeia localizada do status de aprovação.
@currentField
ou [$__ModerationStatus]
também será mapeado internamente para o seguinte valor numérico interno:
- 0: Aprovado
- 1: Negado
- 2: Pendente
- 3: Rascunho
- 4: Agendado
[$_ModerationStatus]
O campo suporta comparações com as cadeias e o valor numérico. As comparações numéricas funcionam entre regiões e idiomas que serão a forma recomendada para este campo.
As expressões a seguir são avaliadas para a saída à direita, para quando o status é Pending
:
// reading field value
"[$_ModerationStatus]" => "Pending"
// obtaining the internal numeric value:
"=Number([$_ModerationStatus])" => 2
"=[$_ModerationStatus.numeric]" => 2
// addition results in string concatenation:
"='status:'+[$_ModerationStatus]" => 'status:Pending'
// numeric comparisons
"=([$_ModerationStatus] == 2)" => true
"=([$_ModerationStatus] != 1)" => true
// other comparators are rarely useful, for cases where you want might want to exclude Draft & Scheduled
"=([$_ModerationStatus] < 3)" => true
// localized string comparison, works only with one locale (en-us here)
"=if([$_ModerationStatus]=='Pending','This Works too!', 'Nope!')" => 'This Works too!'
O exemplo seguinte mostra como um campo de status de aprovação pode ser utilizado num campo atual:
{
"elmType": "div",
"txtContent": "@currentField.displayValue",
"style": {
"color": "=if(@currentField == 2, 'red', '')"
}
}
"[$FieldName]"
A coluna é formatada no contexto de linha inteira. Você pode usar nesse contexto para fazer referência a valores de outros campos na mesma linha, especificando o nome interno do campo entre colchetes e precedido por um cifrão: [$InternalName]
. Por exemplo, para obter o valor de um campo com o nome interno "MarchSales", use [$MarchSales]
.
Observação
A referência a outros campos só funcionará se estiverem incluídos na mesma vista.
Se o valor de um campo for um objeto, as propriedades desse objeto poderão ser acessadas. Por exemplo, para acessar a propriedade "Title" de um campo de pessoa chamado "SalesLead", use "[$SalesLead.title]".
"[!FieldName]"
Na formatação de colunas e vistas, pode consultar os metadados de qualquer campo ao especificar o nome interno do campo entre parênteses retos e precedido por um ponto de exclamação: [!InternalName]
.
O nome a apresentar do campo atualmente está disponível nestes metadados e pode ser acedido com a DisplayName
propriedade : [!SalesLead.DisplayName]
.
"@currentWeb"
Esta ação avaliará o URL absoluto do site. Isso equivale ao valor webAbsoluteUrl
no contexto da página. Esse valor só está disponível no SharePoint Online.
"@me"
Esta ação irá avaliar o endereço de e-mail do utilizador com sessão iniciada atualmente.
Este campo pode ser usado para exibir o endereço de email do usuário atual, mas é mais provável que ele seja usado dentro de condições. Segue-se um exemplo de definição da cor de um campo de pessoa para vermelho quando é igual ao utilizador com sessão atualmente iniciada e azul, caso contrário:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"txtContent": "@currentField.title",
"style": {
"color": {
"operator": "?",
"operands": [
{
"operator": "==",
"operands": [
"@me",
"@currentField.email"
]
},
"red",
"blue"
]
}
}
}
Aqui está o mesmo exemplo acima usando a sintaxe da expressão de estilo do Excel:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"txtContent": "@currentField.title",
"style": {
"color": "=if(@me == @currentField.email, 'red', 'blue')"
}
}
"@now"
Esta ação avaliará a data e hora atuais.
@rowIndex
Esta ação avaliará o índice composto de uma linha numa vista. Esse valor é baseado na posição de processamento e permanecerá consistente com base na posição mesmo que os modos de exibição sejam classificados e filtrados. Índices começam com 0. Esse valor só está disponível no SharePoint Online.
Aqui está um exemplo de como usar o valor em um formato de exibição para aplicar estilos alternados às linhas:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
"additionalRowClass": "=if(@rowIndex % 2 == 0,'ms-bgColor-themeLighter ms-bgColor-themeLight--hover','')"
}
"@window.innerHeight"
Esta ação será avaliada para um número igual à altura da janela do browser (em píxeis) quando a lista for composta.
"@window.innerWidth"
Isso será avaliado como um número igual à largura da janela do navegador (em pixels) quando a lista foi processada.
Miniaturas
Numa biblioteca de documentos, existe uma série de tokens que podem ser utilizados para obter o URL para a miniatura de um ficheiro, incluindo:
-
@thumbnail.small
,@thumbnail.medium
e@thumbnail.large
avalie o URL em miniatura em três tamanhos predefinidos. -
@thumbnail.<bounding size>
avalia o URL para a miniatura maior que não é maior do que o tamanho delimitatório tanto na largura como na altura. Por exemplo,@thumbnail.150
avalia a URL de uma miniatura com no máximo 150×150 pixels. -
@thumbnail.<bounding width>x<bounding height>
avalia o URL para a miniatura maior que não é maior do que a largura delimitadora e a altura delimitadora. Por exemplo,@thumbnail.100x200
avalia a URL de uma miniatura com no máximo 100 pixels de largura e 200 pixels de altura.
Esses tokens não geram valor em itens que não sejam arquivos, inclusive pastas.
Observação
A proporção da miniatura gerada é a mesma que o aspeto do ficheiro, alterar os tamanhos delimitadores não afetará a proporção da miniatura.
Dica
As miniaturas estão disponíveis apenas para uma lista de formatos de arquivo compatíveis. Isso significa que, às vezes, a URL gerada não fica acessível devido à falta de suporte em determinados formatos. No entanto, se um token de miniatura válido for definido como o únicosrc
atributo de uma img
etiqueta, trataremos da mesma e ocultaremos a imagem quando não estiver disponível.
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "img",
"attributes": {
"src": "@thumbnail.200x150",
"alt": "='Thumbnail of file ' + [$FileLeafRef]"
},
"style": {
"width": "100%",
"max-width": "100%"
}
}
Cartão de detalhes de arquivo padrão usando FileLeafRef
{
"elmType": "img",
"style": {
"width": "100%",
"height": "100%",
"display": "=if([$File_x0020_Type] == '', 'none', '')"
},
"attributes": {
"src": "@thumbnail.300x300"
},
"defaultHoverField": "[$FileLeafRef]"
}
displayValue
Os seguintes tipos de coluna podem utilizar displayValue
a propriedade para obter o valor predefinido, com base na definição de coluna:
- Data/Hora
- Número
- Sim/Não
- Moeda
- Status de Aprovação
{
"elmType": "div",
"txtContent": "@currentField.displayValue"
}
Isto também funciona com o nome do campo:
{
"elmType": "div",
"txtContent": "[$FieldName.displayValue]"
}
"@isSelected"
Esta ação será avaliada true
como para os itens selecionados numa vista e false
caso contrário.
"@lcid"
Esta ação será avaliada como o LCID da cultura atual. Isto pode ser utilizado para formatar a data, hora e números.
"@UIlcid"
Esta ação será avaliada como o LCID da cultura de IU atual. Isto pode ser utilizado para mostrar cadeias de apresentação localizadas.