Use a macro ONLYOFFICE para substituir formas por gráficos

23 novembro 2022By Klaibson

As apresentações tornaram-se uma parte essencial da nossa vida. Seja uma reunião de negócios ou um projeto escolar, precisamos deles para apresentar nossa visão ao público. Ajustar sua apresentação de 100 slides pode ser um trabalho tedioso. Esta postagem do blog mostrará como lidar com essa tarefa com a macro do ONLYOFFICE.

Use a macro ONLYOFFICE para substituir formas por gráficos

Nossa pequena macro substituirá formas por gráficos em cada slide. Antes de prosseguirmos, vamos detalhar o posicionamento dos elementos. Ao contrário das planilhas em que linhas e colunas podem ser acessadas por índice, podemos direcionar um elemento de apresentação apenas por sua posição no slide. Os elementos são colocados uns sobre os outros. E isso implica que podemos localizá-los colocando todos os elementos em uma matriz e iterando por ela.

Construindo uma macro

Então, primeiro, direcionamos a apresentação ativa com o método Api.GetPresentation:

var oPresentation = Api.GetPresentation();

Em seguida, adicionamos um for-loop que itera através de cada slide na apresentação. Aqui está o número total de slides. E buscamos cada slide passando-o como um índice:

var oPresentation = Api.GetPresentation();
var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
    var oSlide = oPresentation.GetSlideByIndex(i);
}

Depois disso, executamos o método GetAllShapes . Ele coleta todas as formas no slide e as retorna em uma matriz:

var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
    var oSlide = oPresentation.GetSlideByIndex(i);
    var aShape  = oSlide.GetAllShapes();
}

Agora precisamos remover as formas dos slides. Formas e desenhos herdam as mesmas propriedades, e isso nos permite usar o método Delete . Ele remove uma forma ou um desenho do slide. No nosso caso, as formas são colocadas na parte inferior. Então passamos 0 como um índice para remover todos os elementos inferiores:

var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
    var oSlide = oPresentation.GetSlideByIndex(i);
    var aShape  = oSlide.GetAllShapes();
      aShape[0].Delete();
}

Em seguida, adicionamos um gráfico implementando o método APi.CreateChart . Nos parâmetros, especificamos o estilo do gráfico e os dados exibidos:

 var oChart = Api.CreateChart("bar3D", [
  [200, 240, 280],
  [250, 260, 280]
  ], ["Projected Revenue", "Estimated Costs"], [2014, 2015, 2016], 4051300, 2347595, 24);

Depois disso, definimos o tamanho e a posição no slide. No nosso caso, tornamos um gráfico menor e o centralizamos. Dessa forma, não se sobrepõe ao texto. E inserimos o gráfico no slide executando o método AddObject:

oChart.SetSize(150 * 36000, 90 * 36000);
oChart.SetPosition(3267200, 1000000);
oSlide.AddObject(oChart);

Todo o código da macro é o seguinte:

(function()
{
    var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
    var oSlide = oPresentation.GetSlideByIndex(i);
    var aShape = oSlide.GetAllShapes();
     aShape[0].Delete();
    var oChart = Api.CreateChart("bar3D", [
       [200, 240, 280],
    [250, 260, 280]
       ], ["Projected Revenue", "Estimated Costs"], [2014, 2015, 2016], 4051300, 2347595, 24);
     oChart.SetSize(150 * 36000, 90 * 36000);
     oChart.SetPosition(3267200, 1000000);
     oSlide.AddObject(oChart);
}
})();

Agora, vamos rodar nossa macro e ver como ela funciona!

Esperamos que esta pequena macro peculiar eleve algumas de suas tarefas mundanas. As macros do ONLYOFFICE são extremamente versáteis e podem ser adaptadas às suas necessidades. Incentivamos você a aproveitar nossos métodos de API e criar suas próprias macros. Sinta-se à vontade para fazer perguntas ou compartilhar suas ideias conosco. Estamos abertos à discussão e cooperação. Boa sorte em seus esforços exploratórios!