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 Microsoft Lists.
Para obter mais informações sobre como permitir ou restringir domínios, consulte Permitir ou restringir a capacidade de incorporar conteúdo em Listas do SharePoint com 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 predefinido é 300. (opcional)
- largura: a largura da nota de aviso na qual o conteúdo incorporado será composto. O valor predefinido é 300. (opcional)
- O
customCardProps
Adicione um cartão personalizado ao elemento que aparece ao pairar o rato ou click
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 cartão 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 beak do cartão personalizado.
defaultHoverField
Adiciona o cartão de perfil para os campos de pessoas ou o cartão de passagem do rato 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.
{
"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 na SharePoint Server Subscription Edition a partir da atualização de funcionalidades 22H2 ou com expressões de Árvore de Sintaxe Abstrata no SharePoint Online, SharePoint Server Subscription Edition e SharePoint Server 2019.
Todos os campos no ViewFields
podem ser referenciados 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 na Edição de Subscrição do SharePoint Server a partir da atualização de funcionalidades 22H2. Este estilo de expressão não está disponível no SharePoint Server 2019 ou no SharePoint Server Subscription Edition 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 localidade do usuário e será semelhante a "Wed Aug 03 2022"
-
-
toLocaleString()
: devolve uma representação sensível ao idioma de uma data-
"txtContent":"=toLocaleString(@now)"
os resultados variam com base no localização do usuário, mas en-US parece com "2/5/2019, 1:22:24 PM"
-
-
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 no localização do usuário mas en-US parece com "2/5/2019 "
-
-
toLocaleTimeString()
: devolve uma representação sensível ao idioma apenas da parte de hora de uma data-
"txtContent":"=toLocaleTimeString(@now)"
os resultados variam com base no localização do usuário, mas en-US parece com "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 substring () retorna a parte da cadeia de caracteres entre os índices inicial e final, ou até o fim da cadeia de caracteres.
-
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', '-', '')"
resultados em Hello World
-
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 imagem para um determinado campo de imagem e tamanho preferencial.-
"src":"=getThumbnailImage([$ImageField], 400, 200)"
resulta em uma URL apontando para a 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 do Excel escreva com umaif
declaração. 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 de campo relacionados de vários valores -Os operadores a seguir são usados apenas em um contexto com campo de vários valores 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 do iterador variável, retorna o índice atual do iterador (começando do 0). O nome da iterador deve ser fornecido como uma cadeia de caracteres literal.
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 (irá 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"
Será avaliado como 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
é a cadeia de caracteres localizada do status de aprovação.
@currentField
ou [$__ModerationStatus]
também serão mapeados 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 localidades e idiomas e essa será a maneira recomendada para esse 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 estado 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 do campo atualmente está disponível nestes metadados e pode ser acessado usando a propriedade DisplayName: [!SalesLead.DisplayName]
.
"@currentWeb"
Isso avaliará a URL absoluta do site. Isso equivale ao valor webAbsoluteUrl
no contexto da página. Esse valor só está disponível no SharePoint Online.
"@me"
Será avaliado como o endereço de email do usuário atualmente conectado.
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 como definir a cor de um campo de pessoa para vermelho quando é igual ao utilizador com sessão iniciada atual 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"
Será avaliado como a data e a hora atuais.
@rowIndex
Isso será avaliado como o índice de uma linha em um modo de exibição renderizado. 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"
Isso será avaliado como um número igual à altura da janela do navegador (em pixels) quando a lista foi processada.
"@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 para o URL de miniatura em três tamanhos predefinidos diferentes. -
@thumbnail.<bounding size>
avalia o URL para as miniaturas maiores que não são maiores do que o tamanho delimitatório em largura e 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 taxa de proporção da miniatura gerada é a mesma em relação a aparência do arquivo. A alteração das delimitações de tamanho não afeta a taxa de 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 atual da IU. Isto pode ser utilizado para mostrar cadeias de apresentação localizadas.