Cómo crear un gráfico de archivos de datos brutos en cualquier otro producto electrónico
¿No sería bueno tener la capacidad de abrir justo arriba de una hoja de cálculo Excel o un documento de Word, y sin tener que hacer nada en absoluto, los datos se lee directamente de un archivo de datos CSV y texto o cargas directamente en un gráfico incrustado en su hoja de cálculo o documento de Word? Esta es una forma de automatización utilizando productos de Office, porque si es posible automatizar la cartografía de los datos en la oficina, sólo pensar en las posibilidades. Puede cargar automáticamente los datos en un gráfico de un informe que se está preparando para su jefe - no hay entrada de datos requerida. O se podría cargar datos en un gráfico directamente en un correo electrónico en Outlook.
Vídeo: Gráfico dinámico y segmentación de datos | Excel Aprende
La técnica para lograr esto implica la instalación de Office Web Components complemento. Por otra parte, sólo tiene que configurar algunas cosas en el interior de la aplicación de Office que desea utilizar para importar los datos, y ya está listo para iniciar la automatización de su labor informativa. He cubierto algunos de los elementos que vamos a utilizar en este artículo en el anterior artículos VBA aquí en MakeUseOf. Algunos de los incluidos pasar datos entre aplicaciones con el portapapeles, exportador las tareas de Outlook a Excel, y el envío Correos electrónicos de un Excel guión.Cómo usted puede hacer su propia aplicación sencilla con VBACómo usted puede hacer su propia aplicación sencilla con VBAPara aquellos de ustedes que realmente aman a ser capaz de escribir su propia aplicación, pero nunca han escrito una sola línea de código antes, voy a caminar a través de hacer su muy ...Lee mas
Lo que voy a mostrar es cómo combinar Office Web Components con secuencias de comandos archivo de texto para crear un flujo transparente y automatizado de los datos de un archivo de texto plano en su computadora en su producto de Office (Excel en nuestro caso). Se puede utilizar esta misma técnica - con algunas modificaciones pequeñas - en Word, Outlook, o incluso PowerPoint. Cualquier producto de Office (o cualquier otro producto para el caso) que tiene un back-end de VBA para los desarrolladores, se permitirá utilizar esta técnica.
Importación y crear un gráfico a partir de archivos de datos
Antes de crear un gráfico de archivos de datos, será necesario que habilite algunas cosas primero. En este ejemplo, voy a mostrar cómo habilitar estas características en Excel, pero el proceso es casi idéntico en todos los demás productos de oficina.
En primer lugar, antes de poder hacer cualquier desarrollo de VBA, necesita habilitar la ficha Programador en la barra de herramientas (si no lo ha hecho). Para ello, basta con entrar en el menú Opciones, haga clic en “Personalizar cinta de opciones” y activar la pestaña “desarrollador”.
Vídeo: Cómo crear un Gráfico Interactivo en Excel 2013 con Casillas de Verificación o Checkboxes.
De vuelta en excle, ahora verá “desarrolladores” aparece en los menús. Haga clic en él y haga clic en “modo de diseño”. A continuación, haga clic en “Ver código” para ver el editor de VBA.
Dentro del editor es donde se necesita habilitar las referencias que necesitará para el código que voy a dar a trabajar. Asegúrese de que ha instalado los componentes de Office Web Add-in antes de hacer esto, de lo contrario el objeto de gráfico de Microsoft no estará disponible.
Clic en Herramientas y luego en referencias y verá una lista de todas las referencias que se encuentran disponibles en su sistema. Si usted no sabe lo que son - las referencias son, básicamente, las bibliotecas de código y los objetos que se puede tirar en su propio proyecto. Estos le permiten hacer cosas muy interesantes, dependiendo de lo que hacen referencia a habilitar. Si acaba de instalar Office Web Components en el sistema, tendrá que añadirlo como una nueva biblioteca, así que haga clic en el botón Examinar para buscar el archivo .dll correcto.
Si ha instalado Office Web Components, a continuación, el archivo DLL se llama Owc11.dll, y se almacena en c: Archivos de programa Archivos comunes componentes web compartidos Microsoft 11
Haga clic en la casilla de verificación para el “Microsoft Office Web Components 11.0” de referencia, y también no olvide seleccionar “Microsoft Scripting Runtime”, así, que le dará acceso a leer o escribir a partir de los archivos de datos.
Ahora que ha agregado la referencia, es el momento de añadir el gráfico real a su hoja. En Excel, puede agregar controles haciendo clic en “Insertar” en el menú de desarrollador, y haciendo clic en el icono de herramientas pequeñas en la esquina bajo “Controles ActiveX”.
Desplazarse a “Microsoft Office Chart 11.0” y haga clic en OK.
Finalmente estamos ponerse a trabajar. Esto es lo que se ve el gráfico de componentes Web MS como incrustado en una hoja de cálculo. Se verá el mismo incrustado en un documento de Word o cualquier otra cosa.
Así, en el caso de Excel, quiero la tabla para cargar al instante los datos del archivo de datos al abrir el archivo de libro. Para hacer esto, usted entra en el editor de código haciendo clic en “Ver código” en el menú de desarrollador, y haga doble clic en el libro para ver el código libro. Cambiar el desplegable de la derecha de “abrir”. Este es el script que se ejecutará cuando se abre por primera vez el archivo de libro.
Para cargar la tabla con los datos de código, el gráfico en sí necesita un nombre. Volver a la hoja de cálculo, haga clic derecho en el gráfico y seleccione Propiedades. Verá el campo “Nombre” con algo como “ChartSpace1”. Puede cambiar esto para nada. He llamado a la mía “MyChart”.
Además, para que sepas lo que el archivo de datos es como - el mío es un archivo de texto lleno de valores de datos en formato delimitado por comas. Este archivo puede ser cualquier cosa - los datos de laboratorio exportadas de los sensores, la información financiera escrito en el archivo de forma manual por los internos, o cualquier otra cosa en absoluto. Se le leyendo el archivo con el código, por lo que no importa lo que los datos se parece, por lo que siempre que se sepa lo que cada línea se verá como cuando el programa lee en.
Así pues, ahora viene la parte divertida. Voy a mostrar el código en secciones pequeñas así que no es abrumadora, y explicar lo que hace el código. La parte superior del código se va a leer en primer lugar en todos los valores del archivo de texto y almacenarlos en dos arrayx, uno para las variables x (xvar) y uno para las variables Y (Yvar).
Dim FSO Como Nueva FileSystemObjectDim fnumDim MiArchivo Como StringDim strDataLine Como StringDim xVar () Como VariantDim Yvar () Como VariantDim intNumOfLines Como IntegerMyFile = "c: archivos mydata.txt"FNUM = FreeFile () MyFile abierto para entrada como # 1intNumOfLines = 0Do Aunque no EOF (1) intNumOfLines = intNumOfLines + 1Input # 1, strDataLineInput # 1, strDataLineLoopClose # 1ReDim xVar (intNumOfLines) ReDim Yvar (intNumOfLines) MyFile abierto para entrada como # 1intNumOfLines = 0Do Aunque no EOF (1) entrada # 1, xVar (intNumOfLines) entrada # 1, Yvar (intNumOfLines) intNumOfLines = intNumOfLines + 1LoopClose # 1
Este código funciona básicamente a través del archivo de datos dos veces - la primera vez que dimensionar las matrices de manera que sean la longitud exacta que se necesita para almacenar los datos, y luego una segunda vez para leer los datos en estas matrices. Si usted no sabe lo que es una matriz - es una variable o una zona de almacenamiento que contendrá una larga lista de valores que se pueda acceder mediante el uso de la orden que el valor se almacena en la matriz. El uno cargado tercera sería (3), por ejemplo.
Ahora que tiene dos de estas matrices cargadas con todos los valores desde el archivo de datos, ya está listo para cargar esos valores en la tabla que ya haya incorporado. Aquí está el código que hace eso.
Con Sheet1.MyChart.Clear.RefreshSet oChart = .Charts.AddoChart.HasTitle = = TrueoChart.Title.Caption "Mis valores de datos"`OChart.Interior.Color = "azul"oChart.PlotArea.Interior.Color = "blanco"Establecer oSeries = oChart.SeriesCollection.AddWith oSeries.Caption = "Mis valores de datos".SetData chDimCategories, chDataLiteral, xVar.SetData chDimValues, chDataLiteral, yVar.Line.Color = "azul".Line.DashStyle = chLineDash.Line.Weight = = 2.Type chChartTypeLineEnd WithoChart.HasLegend = = TrueoChart.Legend.Position chLegendPositionBottomEnd Con
Es el “Sheet1.MyChart” que conecta el código de la tabla real que haya incorporado. Se basa en lo lo ha llamado. Este será el caso cuando incrusta en Word, Powerpoint, o cualquier otro producto de Office. No se le refiere que el uso de “Sheet1”, sino que cualquier elemento que sostiene el gráfico en ese caso, como “documento 1” en Word, por ejemplo.
El código anterior establece entonces el etiquetado y la coloración de la gráfica, y luego carga los valores utilizando el método “.setdata” para ambos valores x e y del conjunto de datos de 2 dimensiones. Una vez que el código anterior se hace correr, aparecerá el siguiente gráfico.
Estos datos son directamente del archivo de texto. El único inconveniente es que los archivos de datos tendrían que ser de dos dimensiones sólo si desea utilizar el código de seguridad. Se podría añadir más valores al conjunto de datos, pero que había necesidad de modificar el código de arriba para leer en el tercer valor cada vez a través del bucle, y luego duplicar la sección “SeriesCollection.Add” para crear otra serie y luego agregarlo a la tabla de la misma manera.
Puede parecer complejo sólo leer el código anterior, pero una vez que has hecho uno de estos, es un pedazo de pastel para modificarlo para lo que sus necesidades son. Se podría utilizar el mismo gráfico y el código similar para crear un gráfico de barras, un gráfico de dispersión, o cualquier otro tipo de gráfico que desee usar este mismo objeto. Es versátil y flexible - y es una poderosa herramienta en su arsenal si no tienes un compañero fan de automatización para una mayor productividad.
Juega un poco con el código anterior y ver si se puede datos de auto-carga en sus aplicaciones. ¿Qué usos creativos se puede pensar para este tipo de automatización? Compartir sus pensamientos y comentarios en la sección de comentarios!