![]() |
De nuevo...GRAFICAS AUTOMATICAS EN EXCEL!!
Hace poco escribi un mensaje sobre esto, pero ahora que he vuelto sobre el tema, me gustaria que alguien me ayudara, POR FAVOR!!!
Para crear una grafica de manera automatica en excel desde builder hago esto (codigo cedido por OSKR): //RANGO DE CELDAS PARA LA GRAFICA String origen,destino; //Comienzo y destino de las celdas de datos. origen="C"; destino="C"; origen=origen + IntToStr(14); destino=destino + IntToStr(14 + num_visitas - 1); origen = origen + ":" + destino; Variant MiRango=MiHoja.OlePropertyGet("Range",origen); //GRAFICA Variant MiColeccionGraficos=MiHoja.OlePropertyGet("ChartObjects"); MiColeccionGraficos.OleProcedure("Add",400,20,200,200); Variant MiGrafico=MiColeccionGraficos.OlePropertyGet("Item",1); AnsiString TituloPrincipal="Palomas"; AnsiString TituloEjeY="Eje Y"; AnsiString TituloEjeX="Eje X"; //1 con leyenda //0 sin leyenda int Leyenda=1; //The number of rows or columns containing series labels int SeriesLabels=0; //The number of rows or columns containing category labels int CategoryLabels=0; //7-> barras con valores //6-> barras sin valores //5-> barras complementarias int ContruccionGrafica=6; //2 por barras horizontales //3 por barras verticales //5 tarta //11 por barras 3d //13 por tarta 3d int TipoGrafico=5; MiGrafico.OlePropertyGet("Chart").OleProcedure("ChartWizard",MiRango,TipoGrafico,ContruccionGrafica, 2,CategoryLabels, SeriesLabels,Leyenda,TituloPrincipal.c_str(),TituloEjeX.c_str(),TituloEjeY.c_str()); Excel=Unassigned; El problema es que no se como asignar nombres a las series que muestro, es decir, me aparece la grafica, con los datos, pero cada serie aparece con nombres 1,2,3... GRACIAS, Antonio |
He encontrado...
Que los datos de una grafica vienen dados por series no?...pues para modificarlos, se puede utilizar un metodo llamado SeriesCollection, de manera que si usamos la propiedad "Value", modificamos los datos y con "XValue", los nombres de los datos...
El problema es que el borland me da un fallo que me dice que ese metodo no se puede automatizar...?¿?¿?¿? Entonces direis como, metes los datos, si no te deja?...pues yo estoy usando el metodo, chartwizard....pero ahi no le puedo indicar los nombres de las series.... ALGUNA SUGERENCIA???? POR FAVOR!!!! Antonio |
Noommmmmm, odio excel y toda su api de M.....a, es engorrosa y parece hecha para que tengas que pagar la cuota anual de M$, (lo cual no quiere decir que no la use, en fin).
Pero, lo que pides no lo he hecho nunca, lo maximo ha sido dibujar las graficas (2d) sobre un canvas y enviarlo como una bmp a excel. |
Solucionado!!!
La solucion es la siguiente:
Variant MiRango=MiHoja.OlePropertyGet("Range","A1:A5"); Variant MiColeccionGraficos=MiHoja.OlePropertyGet("ChartObjects"); MiColeccionGraficos.OleProcedure("Add",500,200,200,200); Variant MiGrafico=MiColeccionGraficos.OlePropertyGet("Item",1); Variant q = MiGrafico.OlePropertyGet("Chart"); Variant r = q.OlePropertyGet("SeriesCollection",(Variant)1); r.OlePropertySet("XValues","='1'!L1C2:L2C2"); //Aqui toma los nombres!!! GRACIAS A DAVID (GOKU)!!!! :p Antonio |
La franja horaria es GMT +2. Ahora son las 10:47:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi