Cómo guardar libro de excel

Cómo guardar libro de excel

Postby Armando » Fri May 30, 2014 4:35 pm

Hola Amigos:

Estoy creando un libro de Excel sin problemas, el único problema es que no encuentro
cómo guardar (salvar) el libro permitiendo al usuario elegir donde guardarlo?

Lo he intentado con oExcel:Get("ActiveWorkBook"):SaveAs()
pero no da opción de elegir el path y el nombre.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo guardar libro de excel

Postby sysctrl2 » Fri May 30, 2014 8:12 pm

Paisa, has probado asi?
saludos..

Code: Select all  Expand view
cHoja := "ventas"

oBook  := oExcel:WorkBooks:Add()

oSheet := ::oBook:Worksheets(1)

oSheet:name := cHoja

oExcel:Sheets( cHoja  ):Select()

oSheet := ::oExcel:Get( "ActiveSheet" )      

oSheet:Cells( ::nRow, 1 ):Value = 'titulos'

if oExcel:lOpen
    oBook:Save()
endif
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm

Re: Cómo guardar libro de excel

Postby Armando » Fri May 30, 2014 10:20 pm

Brother:

Nop, tampoco me funciona. no pregunta al usuario nombre y ruta donde salvarlo.

Gracias por el apoyo.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo guardar libro de excel

Postby sysctrl2 » Fri May 30, 2014 10:54 pm

prueba , no terminar el OBJETO.

// oExcel:Quit()
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm

Re: Cómo guardar libro de excel

Postby Armando » Fri May 30, 2014 11:07 pm

Brother:

No hay de piña, el código lo tengo así

Code: Select all  Expand view

    oExcel := TOleAuto():New("Excel.Application")
    oBook := oExcel:WorkBooks:Add()
    oExcel:Set("DisplayAlerts",(.F.))
         ...... líneas para llenar la hoja de excel
         ...... líneas para llenar la hoja de excel
         ...... líneas para llenar la hoja de excel
    oBook:Save()
 


Y nada, se sale cómo si ya hubiera guardado el libro de Excel, pero si te fijas
ni nombre tiene aún.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo guardar libro de excel

Postby sysctrl2 » Sat May 31, 2014 12:37 am

deja hago una prueba, en mi pc.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm

Re: Cómo guardar libro de excel

Postby sysctrl2 » Sat May 31, 2014 12:45 am

paisa puedes probar este test?
en win 8 funciona..
saludos..
Code: Select all  Expand view

 #include "FiveWin.ch"
*
Function Main()
   Local oSheet
   local oBook
   local oExcel
   local i
   
   local oWait
   
   local nRow := 4
   local nStart := nRow
   local cMemo := ''  
   local oClip
   
   
   WAITON(space(30), @oWait)
   oWait:say(1,1,'Creando el objeto...')
   
   oExcel:=CreateObject( "excel.application" );oExcel:DisplayAlerts=.F.;oBook:=oExcel:Workbooks:Add();oSheet:=oExcel:ActiveSheet
   oSheet:Range( "A1" ):Value ="65 mil REGISTROS";oSheet:Range( "A1:D1" ):HorizontalAlignment := 7
   oSheet:Cells(2,3):Value = Time()
   For I=2 To 65000
      oWait:say(2,1, 'Procesando registro: ' + str(i) + space(10 ))
      //oSheet:Cells(I,2):Value = I-1
      cMemo += ''
      cMemo += chr(9) + str(i-1,10)
      cMemo += CRLF
      nRow++    
     

      if len(cMemo) >= 16000  .or. i = 65000
         oClip := TClipBoard():New()
         oClip:SetText( cMemo )
         oSheet:Cells( nStart, 1 ):Select()
         oSheet:Paste()
         oClip:Clear()
         cMemo       := ""
         nStart   := nRow            
         oClip:End()
      endif              
     
     
      sysrefresh()
   Next I
   oSheet:Cells(I-1,3):Value = Time()
   // oExcel:Visible = .T.
   oExcel:Save()
   
   waitoff(@oWait)
Return Nil

static function waitOn( cCaption, oWait, cTitle )  //simula un waiton de grump
   LOCAL nWidth
   local lVal := .t.
   local oBrush

   LOCAL   bAction  := { || .t. }
   default cTitle := "Usuario, un momento por favor"
   DEFINE BRUSH oBrush COLOR RGB( 192, 216, 255 )   //rosa


   IF cCaption == NIL
      DEFINE DIALOG oWait ;
         FROM 0,0 TO 12, Len( cTitle ) + 4 ;
         STYLE nOr( DS_MODALFRAME, WS_POPUP ) BRUSH oBrush TRANSPARENT
   ELSE
      DEFINE DIALOG oWait ;
         FROM 0,0 TO 12, Max( Len( cCaption ), Len( cTitle ) ) + 4 ;
         TITLE cTitle ;
         STYLE DS_MODALFRAME BRUSH oBrush TRANSPARENT
   ENDIF

   oWait:cMsg   := cCaption

   nWidth := oWait:nRight - oWait:nLeft

   ACTIVATE DIALOG oWait CENTER ;
      ON PAINT oWait:Say( 1, 0, xPadC( oWait:cMsg, nWidth ) ) ;
      NOWAIT
   sysRefresh()
return (lVal)

static function WaitOff( oWait )
   IF valtype(oWait) <> 'U'  /* waiton has to be called first! */
      oWait:end()
      oWait := NIL
   ENDIF
   sysRefresh()
RETURN NIL
 
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm

Re: Cómo guardar libro de excel

Postby Armando » Sat May 31, 2014 1:23 am

Paisano:

Corriendo tu ejemplo en W8 64bits se queda congelado y al cancelarlo
vía administrador manda el error

Error description: Error excel.application/1722 Unknown error: SAVE
Args:

Stack Calls
===========
Called from: source\rtl\win32ole.prg => TOLEAUTO:SAVE(0)
Called from: C:\TIbarrolaCFDI\Source\TestE.Prg => TESTE(48)

La línea 48 es:

oExcel:Save()

Uso Office 2007

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo guardar libro de excel

Postby joseluisysturiz » Sat May 31, 2014 2:48 am

Asi me trabaja bien, saludos... :shock:

Code: Select all  Expand view
 
oHoja:SaveAs( 'c:' + 'PRUEBA.XLS' ) // SALVAR ARCHIVO
oHoja:End()
oExcel:WorkBooks:Close() //oExcel:End()

Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Cómo guardar libro de excel

Postby sysctrl2 » Sat May 31, 2014 2:58 am

paisa,
creo que es tu versión de office,

saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm

Re: Cómo guardar libro de excel

Postby Armando » Sat May 31, 2014 4:03 pm

César:

Veré de conseguir otra versión de office, Gracias.

José Luis:

La idea es permitir al usuario Elegir nombre y ruta donde salvar. Gracias

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo guardar libro de excel

Postby sysctrl2 » Sat May 31, 2014 4:48 pm

paisa, ya vamos en el office 2013 jeje,
te llevo uno,, ?
saludos...
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm


Return to FiveWin para Harbour/xHarbour

Who is online

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