De Excel a dbf.

Post Reply
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

De Excel a dbf.

Post by Raymundo Islas M. »

Hola a todos

Normalmente se han visto muchos post acerca de las clases para exportar los datos de una DBF a un archivo XLS aplicando formulas, propiedades del texto, alineacion, etc, etc , en este momento ando buscando lo inverso : poder leer y obtener los datos desde un archivo excel, no me importa realizar ninguna operacion, simplemente leer todas las lineas de X columnas, sin necesidad de convertir el archivo a dbf 8)

Alguna sugerencia ?

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
QAZWSX2K
Posts: 359
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

saludos

Post by QAZWSX2K »

ando en eso mismo desde hace como 2 meses y he probado una tal clase toleauto pero lamento decepcionarte que no me sirve, si lo logro hacer te paso el dato mientras puedes probar tu a ver si esa clase te sirve
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Ok alejandro

Enterado.

Seguimos buscandole.

Gracias
FWH 10.6 + xHarbour + Borland 582
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Mantado pulgas a cañonazos como toda la vida.... jejejejeje

Eso siempre se ha podido hacer con OLE, vean este ejemplo:

Code: Select all

  LOCAL oExcel, oHoja, nRows, nCols
    LOCAL TCampos:={}, nRow, nCol

    oExcel := TOleAuto():New( "Excel.Application" )

     *oExcel:Visible := .T. // por si quieres ver la hoja abierta

    oExcel:WorkBooks:Open(cGetFile("*.XLS", "Seleccione Fichero")) 

    oHoja := oExcel:Get( "ActiveSheet" )

    nRows := oHoja:UsedRange:Rows:Count()
    nCols := oHoja:UsedRange:Columns:Count()

   USE <tu dbf>

   FOR nRow := 2 TO nRows
      APPEND BLANK
      FOR nCol := 1 TO nCols
         xValue := oHoja:Cells(nRow,nCol):Value
         FieldPut(nCol,xValue)
         SysRefresh()
      NEXT
      DBCOMMIT()
      Memory(-1)
   NEXT
   oExcel:Quit()
   oHoja:End()
   oExcel:End()
  
Saludos
R.F.
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Master Flores

Como siempre, ofreciendonos una solucion directa, cuando vemos o creemos que es muy dificil el asunto.

Muchas gracias, enseguida hago pruebas.

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Perfecto !!!!

Puedo hacer exactamente lo que necesitaba.

Once again Master Flores, thanks a lot :lol:


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: saludos

Post by Manuel Valdenebro »

QAZWSX2K wrote:ando en eso mismo desde hace como 2 meses y he probado una tal clase toleauto pero lamento decepcionarte que no me sirve, si lo logro hacer te paso el dato mientras puedes probar tu a ver si esa clase te sirve
Para Clipper, necesitas la libreria Ole2.lib
Para Harbour, necesitas hbole.lib.
Para xHarbour no necesitas nada (viene implementada).

No he trabajado con Harbour. Pero tanto con Clipper + Ole2.lib, como con xHarbour, excel funciona muy bien.
Un saludo

Manuel
User avatar
QAZWSX2K
Posts: 359
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

ummm

Post by QAZWSX2K »

estimado rene pudistes haberme contestado eso a mi tanbien hace mas de un mes que pregunte por eso y solo me ayudastes diciendo que a lo mejor tenia excel incompleto, de todos modos gracias
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post by Vikthor »

La clase TExcels también les puede ser muy útil.


..No te pido que me des el pescado , sino que me enseñes a pescar.....
Vikthor
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Re: ummm

Post by R.F. »

QAZWSX2K wrote:estimado rene pudistes haberme contestado eso a mi tanbien hace mas de un mes que pregunte por eso y solo me ayudastes diciendo que a lo mejor tenia excel incompleto, de todos modos gracias
HQJ (Hay que jo...) ahora resulta que tengo que dar soluciones concretas en momentos especificos.... ya me vale :wink:

Ha veces soy tan irresponsable.... que yo mismo me sorprendo :D
Saludos
R.F.
User avatar
QAZWSX2K
Posts: 359
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

Re: ummm

Post by QAZWSX2K »

pues si que J...jejeje , sin animos de ofender ni nada, estamos claro que no es obligacion de nadie en ningun momento, pero hay momentos en que........espero lo tomes humoristicamente, que mas nos queda
RF wrote:
QAZWSX2K wrote:estimado rene pudistes haberme contestado eso a mi tanbien hace mas de un mes que pregunte por eso y solo me ayudastes diciendo que a lo mejor tenia excel incompleto, de todos modos gracias
HQJ (Hay que jo...) ahora resulta que tengo que dar soluciones concretas en momentos especificos.... ya me vale :wink:

Ha veces soy tan irresponsable.... que yo mismo me sorprendo :D
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Post by MarioG »

Retomo este antiguo hilo debido a que si bien todo funciona ok, en el siguiente excenario, se produce un error con el metodo :End():

Code: Select all

   oExcel := TOleAuto():New( "Excel.Application", .F. )
   oExcel:WorkBooks:Open( cFilePath )
   oExcel:Sheets( 1 ):Select()

   oHoja := oExcel:Get( "ActiveSheet" )
   nTotalRows := oHoja:UsedRange:Rows:Count()

   for nRow := 8 to nTotalRows
        ...
   next

   oExcel:WorkBooks:Close()
   oExcel:Quit()
   oExcel:End()     [b]me devuelve error[/b]
   oExcel := NIL
Lo puedo comentar?; es suficiente con oExcel:Quit() ?
Tengo instalado la versión 2003 de Office, aunque obviamente no todos los clientes pueden tenerla instalada.

gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Quita el END(), con el solo Quit() es mas que suficiente.
Saludos
R.F.
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

un Voto mas por texcel,

no solamente hace eso ,, hace mucho mas,,,

ayer presisamente me tope con que tenia que leer un archivo de

codigos postales en excel,

el libro, tenia 21 pestañas, y en cada hoja habian entre 500 y 3 mil renglones


estudiando un poquito la texcel,

solucione el problema,



saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Post by MarioG »

muchas gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Post Reply