25. Automação com dados do Excel
Quando os dados são fornecidos no Excel, você pode usar as funções UpdateChart
e PresentationFromTemplate
para controlar programaticamente usando esses dados.
Com UpdateChart
você exporta a planilha de dados de um elemento específico com seus dados no Excel. Com PresentationFromTemplate
você usa seus dados para criar uma nova apresentação com base em um modelo do PowerPoint com os elementos do think-cell vinculados aos intervalos de dados no Excel, conforme descrito em 21. Links de dados do Excel.
A interface para as funções é integrada ao modelo de Automação do Office, portanto pode ser acessada a partir de qualquer linguagem com a qual seja possível programar o Office, como Visual Basic for Applications (VBA) ou C#. Consulte Introdução para instruções detalhadas.
O ponto de entrada no think-cell é o objeto de suplemento do think-cell. Pode ser acessado através da coleção Application.COMAddIns
. As chamadas ao think-cell sempre são ligadas tardiamente. Consulte a base de dados de conhecimento da Microsoft para obter uma explicação:
Usando ligação precoce e tardia na automação
Assim, o tipo de objeto do suplemento do think-cell é simplesmente Object
, sem nenhuma biblioteca de tipos nem referências a serem adicionadas. Basta adquirir o objeto, e já será possível fazer mais chamadas. Por exemplo, na VBA no Excel:
Na C#, você pode alcançar uma ligação tardia ao declarar a referência ao suplemento do think-cell como dynamic
; esse também é o tipo presumido pelo compilador ao declarar a referência como var
, então você pode simplesmente escrever:
Aqui xlapp
está uma referência a um objeto do Excel.Application
no qual o think-cell foi carregado.
- 25.1
- Atualizargráfico
- 25.2
- Apresentaçãoapartirdomodelo
25.1 Atualizargráfico
25.1.1 Assinatura
VBA
C#
25.1.2 Descrição
Esta função atualiza todos os elementos no target
com nome strName
com os dados contidos no rgData
. Para que os dados sejam interpretados corretamente para gráficos, o intervalo rgData
deve estar alinhado ao seu layout da planilha de dados padrão, ou sua versão transposta; consulte também Criar gráfico a partir do Excel e Ajustando o layout de dados. A informação sobre se deve ser usada a versão padrão ou transposta é indicada pela configuração bTransposed
para false
ou true
, respectivamente. Para elementos que não são gráficos, tabelas por exemplo, o valor de bTransposed
é ignorado.
target
deve ser Presentation
ou SlideRange
, ou um único Slide
, Master
ou CustomLayout
.
O nome strName
não diferencia maiúsculas e minúsculas. Isso deve ter sido atribuído anteriormente no PowerPoint usando o controle de propriedade Nome de UpdateChart como descrito em 24. Introdução à automação.
Para garantir que os elementos corretos sejam direcionados, certifique-se de que eles sejam os únicos com seu Nome de UpdateChart configurado para strName
no objeto passado como pres
.
Se um elemento direcionado estiver vinculado a algum intervalo de dados do Excel, ao invocar essa função, o vínculo será quebrado. Depois, o elemento não será vinculado a qualquer intervalo do Excel.
25.1.3 Exemplos
Para usar esses exemplos, prepare uma apresentação conforme descrito no 24. Introdução à automação, e a salve como C:\Samples\UpdateChart\template.pptx
.
VBA
Para usar esta amostra adicione-a a um módulo e, uma pasta de trabalho do Excel.
Ela requer uma referência à biblioteca de objetos do Microsoft PowerPoint 16.0 (consulte Visual Basic for Applications para obter mais detalhes).
Ao executar UpdateChart_Sample
em uma pasta de trabalho, o gráfico no modelo de apresentação será atualizado com os dados contidos no intervalo A1:D5
da sua primeira planilha.
C#
Para usar esta amostra, insira-a no lugar do código no Program.cs
do modelo de projeto do aplicativo Console da C#.
São necessárias referências à biblioteca de objetos do Microsoft PowerPoint 16.0, biblioteca de objetos do Microsoft Excel 16.0 e biblioteca de objetos do Microsoft Office 16.0 (consulte C# para obter mais detalhes).
Ao executar o aplicativo resultante, o gráfico será atualizado no modelo de apresentação e exibirá uma única série chamada "Série 1", com valores 1, 2, 3, e o resultado será salvo como template_updated.pptx
.
25.2 Apresentaçãoapartirdomodelo
25.2.1 Assinatura
VBA
C#
25.2.2 Descrição
Esta função usa os vínculos de dados entre a pasta de trabalho do Excel wb
e o modelo com nome de arquivo strTemplate
para instanciar o modelo atualizando os elementos vinculados com os dados dos intervalos ao quais estão vinculados. O resultado é uma nova apresentação dentro da instância do PowerPoint ppapp
.
strTemplate
pode ser um caminho inteiro ou relativo, que é então tomado para ser relativo à localização do arquivo da pasta de trabalho do Excel wb
.
Todos os elementos em strTemplate
que estão vinculados à pasta de trabalho wb
do Excel são atualizados (independentemente se estão definidos para atualização automática ou não). Na apresentação resultante, os vínculos de dados estão corrompidos para impedir que esses elementos sejam alterados no futuro.
Os elementos em strTemplate
, que são vinculados a pastas de trabalho do Excel que não wb
, são deixados sem modificação e ainda vinculados, para ser possível atualizar vínculos de várias pastas de trabalho do Excel, salvando o resultado dessa função como novo modelo e chamando novamente essa função com a próxima pasta de trabalho.
Se você deseja controlar as cores dos segmentos do gráfico ou a formatação das células da tabela com o link do Excel, você pode configurar o esquema de cores para Usar preenchimento da planilha de dados como preferência (consulte Esquema de cores) ou as opções de Usar preenchimento da planilha de dados... (consulte Formatar uma tabela), respectivamente. Da mesma forma, para controlar o formato de número com o link do Excel, configure-o como Usar formatação do Excel (veja Formato de número).
Certifique-se de definir as opções de formatação relevantes e o formato de número das células respectivas no Excel antes de chamar PresentationFromTemplate
.
25.2.3 Exemplos
Para usar essas amostras, primeiro crie uma apresentação contendo um gráfico empilhado vinculado ao intervalo G1:K4
da primeira planilha em uma pasta de trabalho do Excel, conforme explicado em Criar gráfico a partir do Excel. Salve a apresentação resultante como C:\Samples\PresentationFromTemplate\template.pptx
, e a pasta de trabalho como data.xlsx
, no mesmo diretório.
VBA
Para usar esta amostra, adicione-a ao módulo na pasta de trabalho data.xlsx
do Excel, preparada conforme explicado acima.
Ela requer uma referência à biblioteca de objetos do Microsoft PowerPoint 16.0 (consulte Visual Basic for Applications para obter mais detalhes).
Ao executar PresentationFromTemplate_Sample
, o valor na célula Sheet1!H3
, que está vinculado ao primeiro valor da primeira série de planilhas contidas em template.pptx
, de i=1
a 10
, será alterado, será criada uma nova apresentação com o gráfico no modelo atualizado, que passará a exibir esse valor, e que não está vinculado à pasta de trabalho, e será salvo como output_i.pptx
no mesmo diretório que do modelo.
C#
Para usar esta amostra, insira-a no lugar do código no Program.cs
do modelo de projeto do aplicativo Console da C#.
São necessárias referências à biblioteca de objetos do Microsoft PowerPoint 16.0, biblioteca de objetos do Microsoft Excel 16.0 e biblioteca de objetos do Microsoft Office 16.0 (consulte C# para obter mais detalhes).
Ao executar o aplicativo resultante, o Excel abrirá e ficará visível, a pasta de trabalho data.xlsx
será carregada, o valor na célula H3
, que está vinculado ao primeiro valor da primeira série de planilhas contidas em template.pptx
, de i=1
a 10
, será alterado, será criada uma nova apresentação com o gráfico no modelo atualizado, que passará a exibir esse valor, e que não está vinculado à pasta de trabalho, e será salvo como output_i.pptx
no mesmo diretório que do modelo.