Pregunta: | 61002 - COMO GENERAR GRAFICAS EN UN XLS A PARTIR DE PHP |
Autor: | Oswaldo Cuadras |
De nuevo con una pregunta, ya se como generar el archivo de excel a partir de la informacion de una tabla que veo en la pagina, quisiera saber si al archivo de excel le puedo incluir algunas graficas en base a los mismos datos con los que lo estoy generando, ¿Se puede? ¿Como se haria?
Saludos. |
Respuesta: | Carl Go |
Hola por supuesto que si se puede... lo que tienes que hacer es un archivo independiente donde se generen las gráfica, y este archivo va a obtener los valores del archivo generado por PHP.
En caso de que la cantidad de valores obtenidos no sean constantes, es decir que sean datos de rango variables (se incrementa la cantidad de valores en cada vez que se crea el archivo Excel) con datos provenientes de PHP, pues la solución sería generar una gráfica con programación MACRO hecha en VB, que es el lenguaje de programación que una la suite Office. Creo que este código ya está listo para usar. Sólo asígnalo a un botón _________________________________________________________ Sub marrano() Dim x1 As Integer Dim x2 As Integer Dim datosx As Range 'Si los datos los tienes en hoja2 Set datosx = Sheets("Hoja2").Range(Cells(x1, 2), Cells(x2, 2)) 'Eje de categorías Set datos = Sheets("Hoja2").Range(Cells(x1, 3), Cells(x2, 3)) 'rango a graficar x1 = 2 x2 = 5 Charts.Add With ActiveChart 'Esto indica que el gráfico lo imprimes en "Hoja1" ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja1" .ChartType = xlLineMarkers 'Estas son para indicar el origen de los datos .SetSourceData Source:=datos, _ PlotBy:=xlColumns 'Si la serie está por filas cambiar por xlRows .SeriesCollection.NewSeries 'Si tienes una sola serie esta línea sobra .SeriesCollection(1).XValues = datosx .SeriesCollection(1).Values = datos 'Estas son cuestiones de forma .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With End Sub _________________________________________________________ Analiza este código un poco y piensa como adaptarlo a tu necesidad. Saludos Carlos |