Page 1 of 1
De Excel a dbf.
Posted: Thu Jul 13, 2006 4:50 pm
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
Alguna sugerencia ?
Saludos
saludos
Posted: Thu Jul 13, 2006 5:33 pm
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
Posted: Thu Jul 13, 2006 5:41 pm
by Raymundo Islas M.
Ok alejandro
Enterado.
Seguimos buscandole.
Gracias
Posted: Thu Jul 13, 2006 6:05 pm
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()
Posted: Thu Jul 13, 2006 6:27 pm
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
Posted: Thu Jul 13, 2006 6:38 pm
by Raymundo Islas M.
Perfecto !!!!
Puedo hacer exactamente lo que necesitaba.
Once again Master Flores, thanks a lot
Saludos
Re: saludos
Posted: Thu Jul 13, 2006 8:43 pm
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.
ummm
Posted: Sat Jul 15, 2006 4:57 pm
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
Posted: Sun Jul 16, 2006 1:30 am
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.....
Re: ummm
Posted: Mon Jul 17, 2006 1:39 am
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
Ha veces soy tan irresponsable.... que yo mismo me sorprendo
Re: ummm
Posted: Mon Jul 17, 2006 1:21 pm
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
Ha veces soy tan irresponsable.... que yo mismo me sorprendo
Posted: Fri Jul 13, 2007 2:14 pm
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
Posted: Fri Jul 13, 2007 4:31 pm
by R.F.
Quita el END(), con el solo Quit() es mas que suficiente.
Posted: Fri Jul 13, 2007 9:05 pm
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..
Posted: Fri Jul 13, 2007 11:05 pm
by MarioG
muchas gracias