GRAFICOS EXCEL TOleAuto

GRAFICOS EXCEL TOleAuto

Postby jbrita » Fri Mar 17, 2017 12:11 pm

Como hacer un graficos como en esta imagen con
oExcel:=TOleAuto():New( "Excel.Application" )
que quede igual que esta imagen:


Image

saludos
jbrita
 
Posts: 485
Joined: Mon Jan 16, 2006 3:42 pm

Re: GRAFICOS EXCEL TOleAuto

Postby armando.lagunas » Fri Mar 17, 2017 2:53 pm

prueba con esto:

Code: Select all  Expand view

#include "fivewin.ch"

Function Main()
  GraficaExportaExcel ({"Ene","Feb","Mar"},{{1,1000},{2,1500},{3,1300}},{"Ventas"},3,1,"Titulo Gráfica","Subtitulo")
Return (nil)

Function GraficaExportaExcel (aDatosEtiquetas, aValores, aLeyendas, nElementos, nProfundidad, cTitulo)  
/* ===================================================================================
   Realiza la exportación a Excel de la gráfica, datos y gráfico generados
   Revisión : 11/06/2014 19:42:48
   
   (cells [y,x])
   ===================================================================================
 */

Local oExcel, oLibro, oHoja, oChart, oSourceData, oWin, nCol, nSerie, cRango

  If MsgYesNo ("¿Generar hoja de cálculo con los datos y gráfica?","Por favor confirme")
    If ( oExcel := ExcelObj() ) <> nil
      oExcel:ScreenUpdating := .f.
      oLibro := oExcel:WorkBooks:Add()
      oHoja  := oExcel:ActiveSheet
   
      // Titulos ejeX
      For nCol:=1 To Len (aDatosEtiquetas)
        oHoja:Cells( nCol+1,1 ):Value := aDatosEtiquetas[nCol]; oHoja:Cells ( nCol+1, 1 ):Font:Bold:=.T.
      Next
   
      For nSerie:=1 To nProfundidad
        // Series
        oHoja:Cells ( 1,1+nSerie):Value :=aLeyendas[nSerie]
           
        // Importes
        For nCol:=1 To Len (aValores)
          oHoja:Cells( nCol+1,nSerie+1 ):Value := aValores[nCol,nSerie]
        Next
      Next
   
      // Grafico
      cRango:="A1:"+Chr(65+nProfundidad)+Alltrim(Str(Len(aValores)+1))
      oHoja:Range(cRango):Select()
      oChart := oExcel:Charts:Add()
      oChart:ChartType := 4
   
      oSourceData := oHoja:Range(cRango)
      oChart:SetSourceData(oSourceData) //, PlotBy := 2 // xlColumns
   
      oChart:HasLegend := .T.
      oChart:Legend:Position := -4107 // xlBottom
   
      oChart:HasTitle := .T.
      oChart:ChartTitle:Characters:Text := cTitulo
   
      TRY
        oChart:ApplyDataLabels:Set("LegendKey", .T. )
        oChart:ApplyDataLabels:Set("HasLeaderLines", .T. )
        oChart:ApplyDataLabels:Set("ShowValue", .T. )
        oChart:ApplyDataLabels:Set("AutoText", .T. )
        oChart:ApplyDataLabels:Set("ShowBubbleSize", .F. )
      CATCH
      END
       
      oExcel:ScreenUpdating   := .T.
      oExcel:visible          := .T.
      ShowWindow( oExcel:hWnd, 3 )
      BringWindowToTop( oExcel:hWnd )
    Else
      MsgAlert ("Para poder exportar los datos debe tener Microsoft Excel instalado en el sistema","Atención")
    Endif
  Endif
Return (nil)
 


lo encontre en el foro, el autor no lo recuerdo, tampoco lo he probado pero se ve funcional.

Saludos
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: GRAFICOS EXCEL TOleAuto

Postby jose_murugosa » Sat Mar 18, 2017 11:35 pm

El ejemplo es funcional (lo probé, no es que sea mío :D probado en windows 7 y office 2013


Image
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1134
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: GRAFICOS EXCEL TOleAuto

Postby jbrita » Mon Mar 20, 2017 1:12 pm

si muchas gracias, es funcional, y sera posible de que sea igual que la imagen los valores y el grafico a la derecha

saludos
jbrita
 
Posts: 485
Joined: Mon Jan 16, 2006 3:42 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 4 guests