25. Automatización con datos de Excel
Cuando los datos se proporcionan en Excel, puedes utilizar las funciones UpdateChart
y PresentationFromTemplate
para controlar mediante programación utilizando esa información.
Con UpdateChart
intercambia la hoja de datos de un elemento específico con sus datos de Excel. Con PresentationFromTemplate
utiliza sus datos para crear una nueva presentación basada en una plantilla de PowerPoint con elementos de think-cell vinculados a rangos de datos en Excel que se describen en 21. Enlaces de datos de Excel.
La interfaz para ambas funciones está integrada en el modelo de automatización de Office, de manera que puede accederse a ella en cualquier lenguaje en el que se programa Office, como Visual Basic para Aplicaciones (VBA) o C#. Consulte Primeros pasos para ver las instrucciones detalladas.
El punto de entrada a think-cell es el objeto de complemento think-cell. Puede accederse a él por medio de la colección Application.COMAddIns
. Las llamadas a think-cell son siempre enlazadas en tiempo de ejecución. Consulte la base de conocimientos de Microsoft siguiente para obtener más información:
Uso de la vinculación temprana y la vinculación tardía en la automatización
Así pues, el tipo de objeto de complemento de think-cell es sencillamente Object
, y no debe añadirse ningún tipo de biblioteca ni referencia. No tienen más que adquirir el objeto para poder realizar llamadas. Por ejemplo, en VBA en Excel:
En C#, puede conseguir la vinculación tardía declarando la referencia al objeto de complemento de think-cell como dynamic
; este es también el tipo inferido por el compilador al declarar la referencia como var
, de modo que puede escribir simplemente:
Aquí, xlapp
es una referencia a un objeto de Excel.Application
en el que se ha cargado think-cell.
- 25.1
- UpdateChart
- 25.2
- PresentationFromTemplate
25.1 UpdateChart
25.1.1 Firma
VBA
C#
25.1.2 Descripción
Esta función actualiza todos los elementos en target
llamados strName
con los datos contenidos en rgData
. Para que los datos se interpreten correctamente en los gráficos, el intervalo rgData
debe ajustarse a su diseño predeterminado en la hoja de datos, o a su versión transpuesta, consulte también Creación de un gráfico con Excel y Ajuste del diseño de datos. Si se va a utilizar la versión predeterminada o la transpuesta se indica ajustando bTransposed
en false
o true
, respectivamente. Para elementos distintos de gráficos, como, por ejemplo, tablas, se ignora el valor de bTransposed
.
target
debe ser una Presentation
o SlideRange
, o un única Slide
, Master
o CustomLayout
.
El nombre strName
se comprueba sin distinguir entre mayúsculas y minúsculas. Debe haberse asignado previamente en PowerPoint utilizando el control de propiedad Nombre de UpdateChart como se describe en 24. Introducción a la automatización.
Para asegurarse de que se seleccionan los elementos correctos, asegúrese de que son los únicos que tienen su Nombre de UpdateChart establecido en strName
en el objeto pasado como pres
.
Si el elemento objetivo está vinculado a un intervalo de datos de Excel, el vínculo se rompe al invocar esta función. Posteriormente, el elemento no quedará vinculado a ningún intervalo de Excel.
25.1.3 Ejemplos
Para utilizar estas muestras, prepare una presentación como se describe en 24. Introducción a la automatización, y guárdela como C:\Samples\UpdateChart\template.pptx
.
VBA
Para usar este ejemplo, añádalo a un módulo en un libro de Excel.
Requiere una referencia a la biblioteca de objetos de Microsoft PowerPoint 16.0 (consulte Visual Basic para Aplicaciones para ver más detalles).
Ejecutar UpdateChart_Sample
en un libro actualizará el gráfico en la plantilla de la presentación con los datos contenidos en el intervalo A1:D5
de su primera hoja.
C#
Para usar esta plantilla, sustituya el código en Program.cs
de la plantilla del proyecto C# aplicación de consola por este.
Requiere referencias a la biblioteca de objetos de Microsoft PowerPoint 16.0, a la biblioteca de objetos de Microsoft Excel 16.0 y a la biblioteca de objetos de Microsoft Office 16.0 (consulte C# para ver más detalles).
Ejecutar la aplicación resultante actualizará el gráfico de la plantilla de presentación para que contenga una única serie llamada “Serie 1” con los valores 1, 2, 3, y guardará el resultado como template_updated.pptx
.
25.2 PresentationFromTemplate
25.2.1 Firma
VBA
C#
25.2.2 Descripción
Esta función utiliza los vínculos de datos entre el libro de Excel wb
y la plantilla con nombre de archivo strTemplate
para instanciar dicha plantilla actualizando los elementos vinculados con los datos de los rangos a los que están vinculados. El resultado es una nueva presentación dentro de la instancia de PowerPoint ppapp
.
strTemplate
puede ser una ruta de acceso completa o relativa, que se toma respecto a la ubicación del archivo del libro de Excel wb
.
Todos los elementos de strTemplate
que están vinculados al libro de Excel wb
están actualizados (independientemente de que tengan actualización automática o no). En la presentación resultante, sus vínculos de datos se rompen para evitar que se produzcan más cambios en estos elementos.
Los elementos de strTemplate
que están vinculados a libros Excel diferentes de wb
no sufren cambios y continúan vinculados, de manera que es posible actualizar los vínculos a partir de varios libros de Excel guardando el resultado de esta función como plantilla nueva y, a continuación, llamando de nuevo esta función con el libro siguiente.
Si quiere controlar los colores de segmentos del gráfico o el formato de las celdas de la tabla con el vínculo de Excel, puede establecer la combinación de colores en las opciones Usar relleno de hoja de datos en parte superior (consulte Combinación de colores) o Usar hoja de datos... (consulte Formato de una tabla), respectivamente. De igual forma, para controlar el formato de número con el vínculo de Excel, defínalo como Usar formato de Excel (consulte Formato de número).
Asegúrese de definir las opciones de formato relevantes y el formato de número de las celdas correspondientes en Excel antes de llamar a PresentationFromTemplate
.
25.2.3 Ejemplos
Para utilizar estos ejemplos, cree primero una presentación que contenga un gráfico apilado vinculado al intervalo de la primera hoja de un libro de Excel, como se explica en G1:K4
. Guarde la presentación resultante como C:\Samples\PresentationFromTemplate\template.pptx
y el libro de trabajo como data.xlsx
en el mismo directorio.
VBA
Para utilizar este ejemplo, añádalo a un módulo del libro de Excel data.xlsx
preparado como se ha explicado anteriormente.
Requiere una referencia a la biblioteca de objetos de Microsoft PowerPoint 16.0 (consulte Visual Basic para Aplicaciones para ver más detalles).
Ejecutar PresentationFromTemplate_Sample
cambiará el valor de la celda Sheet1!H3
, que está vinculado al primer valor de la primera serie del gráfico contenido en template.pptx
, de i=1
a 10
, creará una nueva presentación con el gráfico de la plantilla actualizado para contener ese valor, y que ya no está vinculado al libro, y la guardará como output_i.pptx
en el mismo directorio que la plantilla.
C#
Para usar esta plantilla, sustituya el código en Program.cs
de la plantilla del proyecto C# aplicación de consola por este.
Requiere referencias a la biblioteca de objetos de Microsoft PowerPoint 16.0, a la biblioteca de objetos de Microsoft Excel 16.0 y a la biblioteca de objetos de Microsoft Office 16.0 (consulte C# para ver más detalles).
Ejecutar la aplicación resultante abrirá visiblemente Excel, cargará el libro data.xlsx
, cambiará el valor de la celda H3
, que está vinculado al primer valor de la primera serie del gráfico contenido en template.pptx
, de i=1
a 10
, creará una nueva presentación con el gráfico de la plantilla actualizado para contener ese valor, y que ya no está vinculado al libro, y la guardará como output_i.pptx
en el mismo directorio que la plantilla.
Gráficos
-
4.Introducción a los gráficos
-
5.Entrada de datos
-
6.Etiquetas de texto
-
7.Gráfico de columnas, gráfico de líneas y gráfico de áreas
-
8.Decoraciones de gráficos
-
9.Gráfico en cascada
-
10.Gráfico Mekko
-
11.Gráfico circular y de anillos
-
12.Gráfico de burbujas y gráfico de dispersión
-
13.Gráfico de Gantt (escala de tiempo)