FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour De Excel a DBF
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
De Excel a DBF
Posted: Fri Jul 31, 2009 10:01 PM
Hola distinguidos

Tengo una planilla .XLS que tiene 3 hojas (CATEGORIA,DATPER,PLADET) y quiero pasarlas a 3 DBFs
Como hago para indicarle la hoja ?
Estoy usando:
Code (fw): Select all Collapse
      LOCAL oExcel, oHoja, nRows, nCols
      LOCAL  nRow, nCol
      oExcel := TOleAuto():New( "Excel.Application" )
     
       oExcel:WorkBooks:Open(cPath+"\BASES.XLS") 
       oHoja=oExcel:ActiveSheet
    
      nRows := oHoja:UsedRange:Rows:Count()
      nCols := oHoja:UsedRange:Columns:Count()
    
      USE DATPER ALIAS DATOS
      
     FOR nRow := 2 TO nRows
         APPEND BLANK
        FOR nCol := 1 TO nCols
          xValue := oHoja:Cells(nRow,nCol):Value
          FieldPut(nCol,xValue)
          SysRefresh()
        Next
       Memory(-1)
    Next
    oExcel:WorkBooks:Close()
   
   DBCOMMIT()
   DATOS->( dBCloseArea() )

siempre me pasa los datos de la primera hoja

Gracias por la ayuda

Saludos cordiales

Adhemar
Saludos,



Adhemar C.
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: De Excel a DBF
Posted: Fri Jul 31, 2009 11:26 PM
Adhemar:

Intentalo así

Code (fw): Select all Collapse
oExcel:WorkBooks:Open(cPath+"\BASES.XLS") // Abres el libro
oExcel:Sheets("tu hoja"):Select()        // Seleccionas la hoja (la activas)
oHoja := oExcel:Get( "ActiveSheet" )    // Tomas la hoja activa y.. listo


Para tomarse en cuenta:

Cuando se salva un libro que tiene más de una hoja este se salva
con la hoja activa. En otras palabras, cuando un libro tiene más de
una hoja siempre es necesario primero seleccionar la hoja con la
que vamos a trabajar e inmediatamente hacerla activa. veamos
un pequeño ejemplo:

Imaginemos que un libro tiene cinco hojas llamadas "hoja1", "hoja2"
"hoja3", "hoja4" y "hoja5" y la última vez que se salvo el usuario
estaba trabajando con la "hoja3". Con el código que estas usando
siempre te leerá la "hoja3" pues es la hoja que esta activa en Excel.

Esto no es problema cuando el libro tiene solo una hoja o cuando
fue salvado estando activa la hoja 1, creo que este es tu caso.

Haz una pequeña prueba para confirmar lo que te digo, abre el libro
con Excel y haz activa la segunda hoja y lo salvas, ahora ejecuta
tu programa sin modificarle nada y veras que la hoja que te esta
leyendo es la hoja2.

Espero no haberme extendido demasiado :-)

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
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: De Excel a DBF
Posted: Sat Aug 01, 2009 12:34 PM

Gracias Armando

Funciona perfecto.

Saludos

Adhemar

Saludos,



Adhemar C.

Continue the discussion