De Excel a dbf.
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
De Excel a dbf.
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
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
FWH 10.6 + xHarbour + Borland 582
saludos
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
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Mantado pulgas a cañonazos como toda la vida.... jejejejeje
Eso siempre se ha podido hacer con OLE, vean este ejemplo:
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.
R.F.
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
Re: saludos
Para Clipper, necesitas la libreria Ole2.libQAZWSX2K 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 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
Manuel
Re: ummm
HQJ (Hay que jo...) ahora resulta que tengo que dar soluciones concretas en momentos especificos.... ya me valeQAZWSX2K 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
Ha veces soy tan irresponsable.... que yo mismo me sorprendo
Saludos
R.F.
R.F.
Re: ummm
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:HQJ (Hay que jo...) ahora resulta que tengo que dar soluciones concretas en momentos especificos.... ya me valeQAZWSX2K 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
Ha veces soy tan irresponsable.... que yo mismo me sorprendo
Retomo este antiguo hilo debido a que si bien todo funciona ok, en el siguiente excenario, se produce un error con el metodo :End():
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
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
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
Chaco - Argentina
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..
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 "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "