Automação com dados JSON

Crie automaticamente apresentações think-cell com JavaScript Object Notation (JSON). Com a automação JSON do think-cell, você pode fazer o seguinte:

  • Preencha os modelos do PowerPoint com dados (por exemplo, títulos de slides e gráficos)
  • Reutilize e reordene modelos para criar novas apresentações
  • Use dados JSON e modelos de PowerPoint de fontes locais ou remotas
  • Transforme dados em tempo real em novas apresentações com um serviço web

Estrutura do arquivo JSON

Esta seção explica como estruturar o arquivo JSON. Trechos de um arquivo de exemplo, sample.ppttc, acompanham esta explicação. Veja o exemplo completo no final desta seção (Exemplo JSON completo).

Na pasta de instalação do think-cell, a pasta ppttc contém os seguintes arquivos:

  • O esquema JSON ppttc-schema.json
  • O Modelo do PowerPoint template.pptx
  • O arquivo de dados JSON sample.ppttc

O arquivo ppttc-schema.json descreve as regras que um arquivo .ppttc deve seguir para criar uma apresentação do PowerPoint com o think-cell.

O arquivo template.pptx contém elementos nomeados (consulte Automação avançada de relatórios). Um modelo pode ter qualquer número de slides.

O arquivo sample.ppttc especifica:

  • Os modelos que o think-cell usará para criar uma nova apresentação
  • A ordem em que os modelos aparecerão
  • Os dados JSON que preenchem os modelos

Especificar modelos, elementos e seus dados

O exemplo sample.ppttc mostra uma matriz que representa uma apresentação do PowerPoint (consulte Exemplo JSON completo).

Modelos

A matriz contém uma série de objetos, cada um dos quais representa uma cópia de um modelo do PowerPoint. Na nova apresentação, os modelos aparecem na ordem especificada na matriz. Se um modelo tiver vários slides, você só poderá modificar a ordem dos slides editando o modelo no PowerPoint.

Na matriz, cada objeto de modelo deve ter duas propriedades: template e data.

template

A propriedade template é uma string que especifica o modelo do PowerPoint que você deseja usar. A string pode ser uma das seguintes:

  • Se você armazenou o modelo localmente, especifique o caminho relativo ou absoluto do modelo no sistema de arquivos local. O separador de diretório deve ser uma barra invertida (\) no Windows – com escape para uma barra invertida dupla (\\) em JSON – ou uma barra (/) no macOS.

No caso mais simples, como mostrado em Exemplo JSON completo, a string template é apenas o nome do arquivo do modelo do PowerPoint, dado que o modelo está na mesma pasta que o arquivo .ppttc.

"template": "template.pptx",
data

A propriedade data é uma matriz de objetos que especificam o seguinte:

Os objetos podem aparecer em qualquer ordem na matriz data, independentemente da posição dos elementos correspondentes no modelo do PowerPoint.

"data": [ ... ]

Elementos

Cada objeto na matriz data tem duas propriedades:

  • name especifica o nome de um elemento, que você atribui no AddRangeData Name (consulte Automação avançada de relatórios).
  • table especifica os dados que preenchem o elemento.

Se dois elementos tiverem o mesmo nome, o think-cell preenche-os com os mesmos dados.

O valor table é uma matriz. A estrutura da matriz depende do tipo de elemento:

  • Para um campo de texto de automação, Harvey Ball ou caixa de seleção, a matriz table contém uma única submatriz com um único objeto. O objeto, como uma sequência de texto ou um número, preenche o campo de texto.
  • Para um gráfico ou tabela, a matriz table contém submatrizes que representam os elementos da planilha de dados.
{
	"name": "RightChartTitle",
	"table": [[{"string": "Our orders (10K)"}]]
},
{
	"name": "LeftChart",
	"table": [
		[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
		[{"string": "Market headroom"}, {"percentage": 46.5}, {"percentage": 47}, {"percentage": 45}, {"percentage": 45}, {"percentage": 41}, {"percentage": 40.5}],
		[],
		[{"string": "Competitor 1"}, {"percentage": 0.5}, {"percentage": 1}, {"percentage": 5}, {"percentage": 2}, {"percentage": 4}, {"percentage": 4.5}],
		[{"string": "Our brand"}, {"percentage": 53}, {"percentage": 52}, {"percentage": 50}, {"percentage": 53}, {"percentage": 55}, {"percentage": 55}]
	]
},

Estrutura da planilha de dados do gráfico

Para um gráfico, cada submatriz na matriz table representa uma linha de uma planilha de dados do gráfico. Para obter o layout específico da planilha de dados de um gráfico, consulte o capítulo correspondente no manual do usuário ou abra a planilha de dados do gráfico para referência (consulte Inserir dados de gráficos). A seguir, é descrita a estrutura das linhas padrão dos gráficos, conforme especificado no esquema JSON.

Primeira linha

A primeira linha é uma submatriz contendo rótulos de categoria. Uma primeira célula vazia (null) precede os rótulos de categoria. Os dados na primeira célula não aparecem no gráfico, portanto podem conter qualquer tipo de informação.

[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],

Linhas subsequentes

As linhas seguintes são submatrizes que contêm os rótulos da série e os pontos de dados dos gráficos. A ordem dos elementos em uma submatriz corresponde à ordem das células em uma linha na planilha de dados. A primeira célula da linha contém o rótulo da série, que geralmente é uma string. As células subsequentes na linha devem conter números ou, para gráficos de Gantt, datas.

[{"string": "Market headroom"}, {"percentage": 46.5}, {"percentage": 47}, {"percentage": 45}, {"percentage": 45}, {"percentage": 41}, {"percentage": 40.5}],
[],
[{"string": "Competitor 1"}, {"percentage": 0.5}, {"percentage": 1}, {"percentage": 5}, {"percentage": 2}, {"percentage": 4}, {"percentage": 4.5}],
[{"string": "Our brand"}, {"percentage": 53}, {"percentage": 52}, {"percentage": 50}, {"percentage": 53}, {"percentage": 55}, {"percentage": 55}]

Linhas vazias

Para especificar uma linha vazia, use uma matriz vazia ([]).

No trecho anterior, a matriz vazia altera a forma como o think-cell aplica o esquema de cores à série de gráficos PowerPoint Theme (consulte Esquema de preenchimento do gráfico). O esquema de cores atribui verde escuro à série na linha 3. Ao deixar a linha 3 em branco, a série Competitor 1 e Our brand agora estão nas linhas 4 e 5, às quais o esquema de cores atribui azul claro e azul escuro, respectivamente.

Linhas e colunas opcionais

Nas planilhas de dados do gráfico do seu modelo do PowerPoint, você pode adicionar ou remover linhas e colunas opcionais (consulte Editar layout da planilha de dados). Isso afeta a forma como o think-cell interpreta os dados JSON nas linhas e colunas correspondentes.

Por exemplo, se você adicionar a linha 100%= em uma planilha de dados do gráfico, o think-cell interpreta a segunda linha dos dados JSON como os totais a partir dos quais as porcentagens são calculadas. Se você omitir a linha 100%=, como neste exemplo, o think-cell interpreta os dados JSON na segunda linha como pontos de dados comuns.

A tabela a seguir resume as linhas e colunas opcionais comuns, suas posições na planilha de dados e suas configurações padrão. Para verificar o layout dos dados de um gráfico específico, clique duas vezes no gráfico para abrir sua planilha de dados.

Option

Contents

Datasheet position

Default setting

Series

Rótulos de série

Coluna 1

Selecionado

Category

Rótulos de categoria

Linha 1

Selecionado

100%=

Totais para cálculos de porcentagem

Linha 2 (se Category selecionada)

Linha 1 (se Category não selecionada)

Não selecionado

Campos de texto de automação, Harvey Ball e caixas de seleção

Ao preencher campos de texto de automação, bolas Harvey únicas e caixas de seleção únicas com dados JSON, o think-cell espera uma matriz table com uma célula. Dentro do vetor table, a célula é representada como uma única submatriz contendo um único objeto.

{
	"name": "SlideTitle",
	"table": [[{"string": "Competition: Germany"}]]
},

Se uma Harvey Ball ou caixa de seleção fizer parte de uma tabela, basta especificar o conteúdo dos elementos na célula correspondente da tabela.

Tipos de dados de células

Em um arquivo .ppttc, as células podem conter os seguintes tipos de dados.

Data type

Key

Example

Notes

Texto

string

{"string": "Our brand"}

Todos os caracteres Unicode imprimíveis (UTF-8) são válidos.

Número

number

{"number": 12.5}

O separador decimal deve ser um ponto (.).

Data do calendário

date

{"date": "2024-01-01"}

Formato obrigatório: "YYYY-MM-DD" (ISO 8601)

Porcentagem

percentage

{"percentage": 50.5}

O separador decimal deve ser um ponto (.). Não inclua o sinal de porcentagem (%).

Cor de preenchimento da célula da planilha de dados

fill

Hex: {"number": 12, "fill": "#ff0000"}

RGB: {"number": 12, "fill": "rgb(255,0,0)"}

Adicione fill e seu valor hexadecimal ou RBG a outra chave.

Para aplicar as cores de preenchimento da planilha de dados aos recursos do gráfico, no modelo do PowerPoint, selecione Use Datasheet Fill (consulte Esquema de preenchimento do gráfico).

Célula vazia

Não aplicável

null

Não coloque null entre aspas.

Exemplo JSON completo

Veja o exemplo JSON completo sample.ppttc abaixo:

[
	{
		"template": "template.pptx",
		"data": [
			{
				"name": "SlideTitle",
				"table": [[{"string": "Competition: Germany"}]]
			},
			{
				"name": "LeftChartTitle",
				"table": [[{"string": "Market share (2020–2025)"}]]
			},
			{
				"name": "RightChartTitle",
				"table": [[{"string": "Our orders (10K)"}]]
			},
			{
				"name": "LeftChart",
				"table": [
					[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
					[{"string": "Market headroom"}, {"percentage": 46.5}, {"percentage": 47}, {"percentage": 45}, {"percentage": 45}, {"percentage": 41}, {"percentage": 40.5}],
					[],
					[{"string": "Competitor 1"}, {"percentage": 0.5}, {"percentage": 1}, {"percentage": 5}, {"percentage": 2}, {"percentage": 4}, {"percentage": 4.5}],
					[{"string": "Our brand"}, {"percentage": 53}, {"percentage": 52}, {"percentage": 50}, {"percentage": 53}, {"percentage": 55}, {"percentage": 55}]
				]
			},
			{
				"name": "RightChart",
				"table": [
					[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
					[{"string": "Pending"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 14, "fill": "#ff0000"}],
					[null, {"number": 709}, {"number": 712}, {"number": 710}, {"number": 700}, {"number": 760}, {"number": 747}]
				]
			}
		]
	},
	{
		"template": "template.pptx",
		"data": [
			{
				"name": "SlideTitle",
				"table": [[{"string": "Competition: Canada"}]]
			},
			{
				"name": "LeftChartTitle",
				"table": [[{"string": "Market share (2022–2025)"}]]
			},
			{
				"name": "RightChartTitle",
				"table": [[{"string": "Our orders (1K)"}]]
			},
			{
				"name": "LeftChart",
				"table": [
					[null, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
					[{"string": "Market headroom"}, {"percentage": 34}, {"percentage": 38}, {"percentage": 41}, {"percentage": 42}],
					[{"string": "Competitor 2"}, {"percentage": 31}, {"percentage": 17}, {"percentage": 15}, {"percentage": 14}],
					[{"string": "Competitor 1"}, {"percentage": 20}, {"percentage": 10}, {"percentage": 9}, {"percentage": 7}],
					[{"string": "Our brand"}, {"percentage": 15}, {"percentage": 35}, {"percentage": 35}, {"percentage": 37}]
				]
			},
			{
				"name": "RightChart",
				"table": [
					[null, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
					[{"string": "Pending"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 15, "fill": "#ff0000"}],
					[null, {"number": 250}, {"number": 401}, {"number": 481}, {"number": 476}]
				]
			}
		]
	}
]

Criar apresentações com dados JSON

Quando o think-cell é instalado, ele instrui o sistema operacional a abrir arquivos .ppttc com o think-cell. Para abrir arquivos JSON com o think-cell no Explorador de arquivos (Windows) ou no Finder (macOS), por exemplo, clicando duas vezes, use a extensão .ppttc.

Quando um arquivo JSON é aberto, o think-cell faz o seguinte:

  1. O think-cell lê o arquivo e verifica se há erros.
  2. O think-cell cria uma nova apresentação. A apresentação consiste em cópias dos modelos de slides especificados na matriz de nível superior no arquivo JSON.
  3. Nas cópias do modelo, o think-cell preenche os elementos (identificados por name) com seus dados correspondentes (especificados na table). Os elementos são atualizados de acordo.
  4. A nova apresentação é aberta no PowerPoint. Você pode salvar ou continuar editando a apresentação.

Crie apresentações a partir da linha de comando

Somente Windows

Crie uma apresentação a partir de dados JSON da linha de comando inserindo o seguinte:

 PPTTC_PATH PPTTC_INPUT -o PPTX_OUTPUT 

Substitua o seguinte:

  • PPTTC_PATH: o caminho de ppttc.exe
  • PPTTC_INPUT: o caminho do seu arquivo .ppttc
  • PPTX_OUTPUT: o nome do arquivo .pptx criado, precedido pelo caminho onde deseja salvá-lo

O arquivo executável ppttc.exe está localizado em ppttc na pasta de instalação do think-cell. Chame ppttc.exe nos scripts de automação para criar novas apresentações do PowerPoint.

Fornecer dados JSON remotamente

Gere remotamente dados JSON para um arquivo .ppttc em um servidor. Para criar uma nova apresentação, o usuário faz o download do arquivo .ppttc de um navegador da web e o abre com o think-cell.

Para obter um exemplo de como gerar e baixar dados JSON com um servidor, na pasta de instalação do think-cell, consulte /ppttc/sample.html. O arquivo sample.html contém os seguintes elementos:

  • Marcação HTML para um botão que, quando clicado, compila dados JSON instantaneamente
  • Alguns dados JSON estáticos. Em um caso de uso típico, os dados JSON vêm de outras fontes.
  • Uma função JavaScript que faz o download do arquivo .ppttc para o computador do usuário.

Depois que o usuário faz o download do arquivo .ppttc, ele poderá salvá-lo ou abri-lo. Quando o usuário abre o arquivo, o think-cell cria uma nova apresentação usando os dados JSON (consulte Criar apresentações com dados JSON).

Fornecer modelos remotamente

Para fornecer modelos do PowerPoint por meio de um servidor, faça o seguinte:

  • No arquivo JSON, forneça uma URL em vez de um caminho local para a chave template. O protocolo de URL pode ser HTTP ou HTTPS.
  • Certifique-se de que o usuário que abre o arquivo .ppttc tenha acesso ao modelo remoto.

Uma instalação padrão do think-cell na máquina do usuário é suficiente para gerar apresentações do think-cell com dados JSON remotos e modelos.

Criar apresentações remotamente

Configure fluxos de trabalho automatizados nos quais os usuários fazem download das apresentações do think-cell com dados personalizados. Para baixar apresentações, os usuários precisam apenas de um navegador da web. Eles não precisam ter o think-cell instalado em seu computador.

A configuração desses fluxos de trabalho requer o servidor think-cell, que só funciona no Windows. O servidor think-cell recebe dados JSON como entrada e gera apresentações do PowerPoint como saída.

Execute o servidor think-cell

Somente Windows

Para iniciar o servidor think-cell, siga estas etapas:

  1. Na pasta de instalação do think-cell, execute o tcserver.exe.
  2. Insira uma URL que especifique o endereço IP e a porta que o servidor deve ouvir. O protocolo do servidor é HTTP ou HTTPS.
  3. Selecione Register URL.
  4. Quando solicitado, permita que o servidor think-cell faça alterações no seu dispositivo.

Para parar o servidor think-cell, siga estas etapas:

  1. Selecione Unregister URL.
  2. Quando solicitado, permita que o servidor think-cell faça alterações no seu dispositivo.

O campo Log exibe o seguinte:

  • Confirmação de que o servidor iniciou ou parou de escutar em uma URL
  • Todas as solicitações do cliente e respostas do servidor

O servidor aceita dados JSON como solicitações HTTP POST com tipo de mídia (também conhecido como tipo MIME) application/vnd.think-cell.ppttc+json e responde com um arquivo PowerPoint.

Executar como serviço automático

Para iniciar automaticamente o servidor think-cell ao ligar o computador, siga estas etapas:

  1. Na caixa de diálogo think-cell server, selecione a opção Run as auto-start service.
  2. Em Password, insira a senha para a conta nomeada na opção Run as auto-start service.

Experimente!

Somente Windows

Crie uma apresentação do PowerPoint com o clique de um botão usando nosso exemplo pronto.

  1. Inicie o servidor think-cell com o URL http://127.0.0.1:8080.
  2. Abra http://127.0.0.1:8080 em um navegador.
  3. A página da web "teste ppttc" será aberta. Selecione Send .ppttc to server and get .pptx.

O servidor think-cell cria uma apresentação do PowerPoint a partir de dados JSON. O navegador faz download da apresentação para o seu computador.

O código-fonte HTML da página de "teste ppttc" demonstra um possível uso da automação JSON do think-cell. O código-fonte pode servir como ponto de partida para o seu próprio fluxo de trabalho automatizado. O código contém os seguintes elementos:

  • Marcação HTML para um botão que, quando clicado, invoca um método usando o XMLHttpRequest para se comunicar com o servidor think-cell.
  • Alguns dados JSON estáticos. Em um caso de uso típico, os dados JSON vêm de outras fontes.
  • Uma função JavaScript para enviar os dados JSON para o servidor think-cell. O servidor gera a solicitação HTTP POST com os dados JSON estáticos. A resposta do servidor é um download de arquivo.

A página de "teste ppttc" usa JavaScript para enviar solicitações HTTP POST e salvar a resposta dos servidores think-cell como um arquivo PowerPoint. Obviamente, outros idiomas também funcionam.amplo