Referência de sintaxe de formatação

elmType

Especifica o tipo de elemento a ser criado. Os elementos válidos incluem:

Qualquer outro valor resultará em um erro.

filepreview

Utilize o especial elmTypefilepreview 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.netstatic2.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ção executeFlow:

    • 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 em actionInput. Também pode controlar o height e width da nota de aviso com o actionInput.

    Observação

    • O src precisa de ser apenas a url parte de um código incorporado gerado por uma aplicação (geralmente encontrado no src atributo do iframe 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ção embed:

    • 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)

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
  • "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, bottomLeftEdgebottomRightEdge, leftBottomEdge, leftCenter, leftTopEdge, rightBottomEdge, rightCenter, , rightTopEdge, topAutoEdge, , , topLeftEdgetopCentertopRightEdge
  • "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 txtContentque 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 alternativa indexOf 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 a a ? b : c, em que, se a expressão a for avaliada como verdadeira, o resultado é b, caso contrário, o resultado é c. Para expressões de estilo do Excel escreva com uma if 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.mediume @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.