23. Automação com dados do JSON

Você pode usar os dados no JSON para duplicar gráficos criados primeiramente como modelo e fornecer uma nova planilha de dados para eles. Você pode controlar a ordem na qual modelos específicos são usados para construir uma nova apresentação. Os modelos também podem ser usados várias vezes.

Você pode preparar uma biblioteca com todos os tipos de gráficos que precisa e, conforme necessário, versões com diferentes decorações de gráfico habilitadas. Então, você pode combinar livremente esses modelos e abastecê-los com dados para uso em uma nova apresentação.

Os modelos do PowerPoint e os dados do JSON podem ser armazenados local ou remotamente. Os dados do JSON podem até ser gerados em tempo real por um serviço da internet.

23.1
Estrutura dos dados do JSON para o think-cell
23.2
Usando os dados do JSON para criar uma apresentação
23.3
Abastecendo os dados do JSON remotamente
23.4
Abastecendo o modelo de forma remota

23.1 Estrutura dos dados do JSON para o think-cell

Um exemplo dos dados do JSON para o think-cell aparece abaixo e pode ser encontrado no arquivo sample.ppttc na subpasta ppttc do diretório de instalação do think-cell. O JSON especifica uma apresentação a ser criada a partir de uma concatenação de modelos. Isso adequa-se ao esquema em ppttc/ppttc-schema.json.

arquivo de exemplo do JSON para automação do think-cell

No nível raiz há uma matriz de itens. Cada item especifica um arquivo de modelo e dados para seus gráficos. Os modelos diferentes podem ser concatenados e um único modelo pode ser usado mais de uma vez. No caso mais simples, um único modelo é usado uma única vez para preencher todos os gráficos contidos nesse modelo com dados.

Cada item em uma matriz de modelos concatenados contêm duas chaves: image modelo e image dados. O valor para image modelo é o caminho para um arquivo do PowerPoint com gráficos do think-cell para os quais um nome foi definido como um identificador (consulte Introdução à automação). O arquivo de modelo também pode ser recuperado a partir de um local remoto conforme descrito em Abastecendo o modelo de forma remota.

O valor para a chave image dados é uma lista de tabelas de dados no formato do JSON para os gráficos contidos no modelo. Cada item na lista tem duas propriedades: image nome e image tabela. image nome especifica um gráfico usando o nome e image tabela que contém a tabela de dados.

A estrutura de valor para image tabela corresponde diretamente a uma planilha de dados não transposta com linhas que representam séries e colunas que representam categorias. Para um gráfico padrão, significa que a seguinte ordem de linhas serão representadas:

1.
Uma linha com uma célula vazia primeiro (null) e então células com nomes de categorias.
2.
Uma linha de 100%=valores. Se nenhum 100%=valores for usado, a linha vazia é especificada como image [].
3.
Múltiplas linhas com uma primeira célula dando o nome das séries e as células subsequentes contendo valores numéricos.

Qualquer gráfico que possa ser dado um nome pode ser referenciado em JSON. Para o layout de planilha de dados específico, veja o capítulo respectivo ou simplesmente abra a planilha de dados interna do gráfico como referência.

Observação: Qualquer célula dentro do intervalo da planilha do think-cell pode conter qualquer tipo de texto. Se desejar, a primeira célula na primeira linha também pode ser preenchida.

Os dados que compõem o valor de uma chave table devem obedecer a determinadas regras estabelecidas no esquema. O valor para a chave table em si é uma matriz. As submatrizes representam as linhas da planilha de dados. Linhas vazias podem ser especificadas usando uma matriz vazia []. O conteúdo de uma célula é descrito pelos elementos listados nesta submatriz. A ordem dos elementos corresponde à ordem das colunas em uma planilha de dados. Uma célula vazia deve ser explicitamente descrita usando um elemento null. As células com conteúdo devem ser descritas usando outro par de chave-valor. Nesse caso, a chave descreve o tipo de dados e o valor contém os dados reais a serem exibidos na apresentação. Três tipos diferentes de dados são válidos:

  • image cadeia para qualquer tipo de texto. Todos os caracteres unicode imprimíveis (UTF-8) são válidos. Exemplo: {"string":"Echo"}
  • image número para qualquer tipo de número. O separador decimal usado tem que ser um ponto. Exemplo: {"number":"5"}
  • image data para datas. O formato obrigatório é YYYY-MM-DD. Exemplo: {"date":"2016-09-04"}

Qualquer formatação do conteúdo das células (por exemplo, especificar o formato da data) deve ser feita no modelo do PowerPoint.

23.2 Usando os dados do JSON para criar uma apresentação

O arquivo de dados do JSON deve ter um tipo de arquivo de .ppttc. Ao abrir esse arquivo:

1.
think-cell lê o arquivo e verifica sua integridade estrutural.
2.
Uma nova apresentação é criada. Para cada item no nível superior do arquivo do JSON, a nova apresentação contém uma cópia do modelo especificado.
3.
Nas cópias do modelo, as planilhas de dados dos gráficos identificados pelos valores name são substituídas pelos dados nos valores table. Todos os rótulos totais, colocações de rótulos e valores de seta de diferença ou outras decorações de gráfico são atualizados.

Depois, a nova apresentação é exibida. O usuário pode ainda editar seus conteúdos e salvá-los ou usá-los de qualquer outra forma.

23.3 Abastecendo os dados do JSON remotamente

Os dados do JSON em um arquivo .ppttc também podem ser gerados remotamente por um serviço de internet e disponibilizados ao usuário para download em um navegador de rede. Consulte a amostra fornecida abaixo e em sample.html na subpasta ppttc do diretório de instalação do think-cell.


<!DOCTYPE html> 
<html> 
<body> 
 
<h1>ppttc test</h1> 
 
<button type="button" onclick="myFunction()"> 
Download .ppttc 
</button> 
 
<a id="downloader" style="display:none"/> 
 
<script> 
function myFunction() { 
  var obj = [ 
    { 
      template : "https://static.think-cell.com/ppttc/template.pptx", 
      data: [ 
        { 
          name: "Chart1", 
          table: [ 
            [null, {string:"Alpha"},{string:"Bravo"},{string:"Charlie"}], 
            [], 
            [{string:"Delta"},{number:1},{number:2},{number:3}], 
            [{string:"Echo"},{number:4},{number:5},{number:6}] 
          ] 
        }, 
        { 
          name: "Chart2", 
          table: [ 
            [null, {date:"2016-09-03"},{date:"2016-09-04"},{date:"2016-09-05"}], 
            [], 
            [{string:"Foxtrot"},{number:7},{number:8},{number:9}], 
            [{string:"Gulf"},{number:10},{number:11},{number:12}] 
          ] 
        } 
      ] 
    } 
  ]; 
  var elemDownloader = document.getElementById("downloader"); 
  elemDownloader.setAttribute("href","data:application/vnd.think-cell.ppttc+json;charset=utf-8," 
    + encodeURIComponent(JSON.stringify(obj))); 
  elemDownloader.setAttribute("download", "sample.ppttc"); 
  elemDownloader.click(); 
} 
</script> 
 
</body> 
</html>

Figura 23..1: Exemplo remoto do JSON

No nosso exemplo, os dados do JSON são compilados rapidamente quando o usuário solicita um download. Enquanto o exemplo incorpora dados estáticos, você pode criar dinamicamente JSON a partir de outras fontes de dados usando os parâmetros fornecidos pelo usuário em seu site.

Quando um arquivo .ppttc é baixado, o usuário pode escolher salvar o arquivo ou abri-lo de forma semelhante a outros downloads. Ao abrir o arquivo, os dados do JSON são usados para criar uma nova apresentação como descrito em Usando os dados do JSON para criar uma apresentação.

23.4 Abastecendo o modelo de forma remota

Os arquivos de modelos com gráficos do think-cell também podem ser abastecidos por meio de um servidor remoto. Nesse caso, o valor da chave template é uma URL em vez de um caminho local, como mostrado no exemplo remoto do JSON acima. A URL pode especificar http como protocolo, https para uma conexão segura ou qualquer outro protocolo válido no sistema onde o arquivo .ppttc é aberto.

Ao processar um arquivo .ppttc que se refere a um modelo remoto, o PowerPoint recupera o arquivo modelo. Portanto, o usuário que abriu o arquivo .ppttc precisa de acesso apropriado ao modelo remoto.

Quando os dados do JSON são gerados remotamente por um serviço de rede e os modelos também são armazenados remotamente, apenas uma instalação padrão do think-cell é necessária na máquina do usuário para usar as apresentações do PowerPoint geradas dinamicamente com os gráficos do think-cell.