Agregar un gráfico a un documento de microsoft con office web components
¿No es asombroso cómo algo tan simple como la creación de un gráfico puede sentirse a veces tan complicado? Ya sea que esté usando Excel, Word, PowerPoint o Access - a veces sería bueno que acaba de insertar un gráfico rápido con un montón de datos sin tener que hacer un montón de configuración y perder el tiempo.
En este artículo voy a mostrar cómo utilizar un objeto VBA muy cómoda y sencilla desde Microsoft Office Web Components que te permite insertar un gráfico directamente en un documento, presentación o cualquier otra cosa donde se puede crear el código VBA para ejecutarlo. Esto también puede incluir productos que no son de Microsoft que tienen un back-end de VBA, que muchos lo hacen.
En este ejemplo, voy a mostrar cómo habilitar el modo de diseño en su programa (en este caso, vamos a utilizar Microsoft Word), incrustar el objeto gráfico en el proyecto y, a continuación, la forma de escribir el código que lo llena con datos.
En algunos de mis últimos artículos VBA, algunos de ustedes mencionaron que la tarea en cuestión era un poco demasiado complicado para cualquier persona que nunca ha escrito código antes. Espero que después de leer este artículo, usted será motivado para intentar su mano con VBA. El código incluido aquí es muy sencillo y fácil de escribir. Incorporación de esta tabla es una gran manera de conseguir sus manos sucias con VBA si nunca has probado antes.
Si sabes de VBA, entonces esta es una gran herramienta para empezar a incrustar gráficos rápidos en sus proyectos con mucho menos esfuerzo que nunca.
Activación del modo Diseño
En este ejemplo, quería armar un documento rápido con un gráfico incrustado que muestra los datos del mes actual de mi presupuesto, así como el promedio mensual de pasar años hasta la fecha.
En este ejemplo, voy a colocar esos valores no modificable en una “matriz” a la derecha dentro del código VBA, pero en última instancia, se puede utilizar una variedad de técnicas para cargar las variables de matriz (una matriz es simplemente una variable que contiene una lista de valores) de otras fuentes, como una hoja de cálculo externa, o un formulario en el que introduce los valores en forma manual cada mes.
Para aprender cómo importar datos en Word desde Excel, echa un vistazo a mi artículo en el tema. A los efectos de este artículo, nos vamos a centrar en la creación de la tabla para mostrar los datos.Cómo integrar datos de Excel en un documento de WordCómo integrar datos de Excel en un documento de WordDurante su semana de trabajo, es probable que haya un montón de veces en que sienta que copiar y pegar información de Excel en Word, o al revés. Así es como la gente a menudo producen informes escritos ...Lee mas
Vídeo: Interfaz de Office - 10 - Insertar Grafico.flv
Ahora que he comenzado mi documento, yo quiero entrar en el código. En Word o Excel, esto se hace haciendo clic en “Archivo”, “Opciones” y luego clic en la opción de personalizar la cinta. En el lado derecho de opciones, verá la columna “Personalizar la cinta de opciones”, y en el campo “principal aquí” debe ver “desarrolladores” sin marcar. Compruebe que la casilla.
De vuelta en su documento, ahora debería ver la opción de menú “desarrolladores” disponible. Dentro de este menú, se encuentra el botón de “modo de diseño”.
Haga clic en el modo de diseño, y luego haga clic en el icono de la carpeta / herramientas para “Herramientas heredadas”, y luego en la esquina inferior derecha de la ventana emergente, en Controles ActiveX, haga clic en el botón “Más controles”.
Desplazarse por la lista de controles disponibles hasta llegar a “Microsoft Office Chart xx.x”. Si tiene instalado Microsoft Office en el equipo, entonces este control más probable que esté disponible.
Vídeo: Writer: Referencia de gráficos y tablas
Una vez que se inserta el control en el documento, verá que se muestre como una caja que dice “Microsoft Office Web Components” dentro. Se trata esencialmente de su carta vacía, lista para mostrar los datos.
El siguiente paso es escribir el código que va a configurar el tipo de gráfico, y mostrar los datos. Si desea que el proceso sea manual, se puede colocar un botón en el documento que cargar los datos en la tabla, pero en mi caso yo quería todo para ser automatizada completa. En el momento en que abra el documento, quería que se ejecute la secuencia de comandos que carga la tabla, por lo que se puede hacer esto en el código (haga clic en el botón de Visual Basic para entrar en el editor de código), y seleccionando el objeto de documento y la evento “abierto”.
Vídeo: How to get office web components XP/2002 in Sharepoint Designer 2007
Esto colocará automáticamente una función de vacío llamado “Document_Open ()” en el código. Dentro de esa función, que desea pegar el siguiente código.
Private Sub Document_Open () Dim i As Integer Dim oChart Dim oSeries1 Dim oSeries2 `Crear matrices para los valores de x y los valores de y XValues Dim As Variant, yValues1 Como variante, como variante yValues2 XValues = Array ("Recibo de la luz", "Hipoteca", "Factura de teléfono", _ "Factura de la calefacción", "Comestibles", _ "Gasolina", "Ropa", "Compras") yValues1 = Array (124,53, 1250,24, 45,43, 253,54, 143,32, 259,85, 102,5, _ 569,94) yValues2 = Array (110, 1250, 50, 200, 130, 274, 95, _ 300)
Esta sección del código crea tres matrices. El primero (XValues) es básicamente su lista eje x de las descripciones de cada elemento de datos. En mi caso estoy creando un gráfico de barras columna con yValues1, pero también se puede crear un gráfico de líneas. Te voy a mostrar cómo hacer eso con yValues2. Ahora pegue el siguiente segmento de código.
con ThisDocument.ChartSpace1 .Claro .Refrescar Establecer oChart = .Charts.Add oChart.HasTitle = True oChart.Title.Caption = "Números presupuesto mensual vs Promedio"
Esta sección del código crea realmente crea el propio gráfico dentro de su contenedor “ChartSpace”. Su carta no tiene ningún dato en este punto, pero con un par de comandos que se puede establecer el título para el gráfico, así como el título. Ahora es el momento de añadir los datos. Pegue el siguiente código debajo del código que ya se ha pegado a hacerlo.
Establecer oSeries1 = oChart.SeriesCollection.Add con oSeries1 .caption = "Este mes" .SetData chDimCategories, chDataLiteral, XValues .SetData chDimValues, chDataLiteral, yValues1 .Type = chChartTypeColumnClustered Terminar con `Añadir otra serie a la tabla con los valores de x y valores de y `De las matrices y establecer el tipo de serie a un gráfico de líneas Establecer oSeries = oChart.SeriesCollection.Add con oSeries .caption = "El gasto promedio" .SetData chDimCategories, chDataLiteral, XValues .SetData chDimValues, chDataLiteral, yValues2 .Type = chChartTypeLineMarkers Terminar con
Vídeo: Office Web Apps Tutorial en español
El código anterior crea dos series a mostrar en el gráfico. La primera serie configura los datos para mostrar el interior del objeto de gráfico como un formato de “ColumnClustered”, y la segunda serie está configurado para mostrar como un formato de “TypeLineMarkers”. Esto mostrará ambos conjuntos de valores en el mismo gráfico, sino que va a utilizar diferentes tipos de gráficos - que en realidad puede ser una manera muy fría para mostrar y comparar múltiples conjuntos de datos.
Ahora que los datos se añaden, todo lo que queda es para poner en orden el eje y acabar con los detalles de la carta.
`Dar formato a los ejes de valores
oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0" oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000 `Mostrar la leyenda en la parte inferior del gráfico oChart.HasLegend = True oChart.Legend.Position = chLegendPositionBottomTerminar con
End Sub
El código anterior da formato a los números en el eje izquierdo para mostrar en formato numérico dólar. La siguiente línea configura el límite máximo del eje vertical. Como sé que los elementos individuales no van a ir más de $ 1000, eso es lo que establecer el límite máximo del eje y a.
Guardar el documento, cerrar el partido, volver a abrir, y voila - hasta llega su carta, cargada automáticamente con los datos de las dos matrices.
Ahora que ya sabe cómo insertar las tablas y automáticamente cargar datos en ellos, sólo pensar en las posibilidades. Todo lo que tiene que hacer es conseguir los datos externos en esas matrices - tal vez una hoja de cálculo de Excel, tal vez una base de datos, o cualquier otra cosa - y de repente este documento se convierte en una ventana muy dinámica y valiosa sobre los datos almacenados.
Esto es sólo la punta del iceberg con los componentes web objetos de MS Office. Empecé con las cartas porque me parece que la función de ser el más emocionante. Para agregar gráficos a cualquier aplicación VBA que desea con un guión muy corto es muy útil y muy potente.
Si usted es todo sobre tablas, por qué no dar a este objeto de gráfico intentarlo? ¿Sabe usted de cualquier otros objetos gráficos útiles para VBA? ¿Cómo se puede integrar datos en sus aplicaciones? Compartir sus pensamientos y experiencias en la sección de comentarios.