FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour GRAFICOS EXCEL TOleAuto
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
GRAFICOS EXCEL TOleAuto
Posted: 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:




saludos
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: GRAFICOS EXCEL TOleAuto
Posted: Fri Mar 17, 2017 02:53 PM
prueba con esto:

Code (fw): Select all Collapse
#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
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: GRAFICOS EXCEL TOleAuto
Posted: Sat Mar 18, 2017 11:35 PM
El ejemplo es funcional (lo probé, no es que sea mío :-) probado en windows 7 y office 2013


Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: GRAFICOS EXCEL TOleAuto
Posted: Mon Mar 20, 2017 01: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

Continue the discussion