CLASE OLE PARA 16 Y 32 BITS

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

CLASE OLE PARA 16 Y 32 BITS

Post by QAZWSX2K »

SALUDOS POR FAVOR SI ALGUIEN TIENE LA CLASE OLE, TOLEAUTO ACTUALIZADA Y ME LA PODRIA MANDAR SE LO AGRADECERIA MUCHO, GRACIAS, TENGO ES UNA VERSION DEL 2001 QUE ME DA ERROR AL TRATAR DE PASAR DE EXCEL A DBF

GRACIAS COMPAÑEROS
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

One question / una cuestión:

¿ Clipper / Habour .or. xHarbour ?
Un saludo

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

que sirva

Post by QAZWSX2K »

saludos preferiblemente de harbour pero me conformo con alguna que sirva ya que no leen desde excel, da error de property no se que cosa en GETproperty workbooks o algo asi, me tiene verde, tengo mas de 2 meses en este detalle, gracias
FiveWiDi
Posts: 910
Joined: Mon Oct 10, 2005 2:38 pm

Re: que sirva

Post by FiveWiDi »

QAZWSX2K wrote:saludos preferiblemente de harbour pero me conformo con alguna que sirva ya que no leen desde excel, da error de property no se que cosa en GETproperty workbooks o algo asi, me tiene verde, tengo mas de 2 meses en este detalle, gracias
En Harbour y sin librerías adicionales, yo lo hago así (ahora me doy cuenta de que no estoy eliminando al final oExcel ni oHoja):

==========================
oExcel := CreateOLEObject("Excel.Application")
OLESetProperty(oExcel,"Visible", .T.)
OLEInvoke( OLEGetProperty(oExcel,"Workbooks"), "Open", cPathxls )
oHoja := OLEGetProperty(oExcel,"ActiveSheet")

ccognoms := "zzz"
nRow := 1

While AllTrim( ccognoms ) <> ""

nRow ++

Msgnowait( AMPAarra, "Atención!" , "Leyendo e importando datos." + ;
" Espere unos momentos por favor...." )

cCCC := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 2 ), "Value" )
If Valtype( cCCC) = "U"
cCCC := "00000000000000000000"
EndIf
cccc := Upper( cccc )
Traza(1, "cccc=", cccc )

cmail := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 3 ), "Value" )
If Valtype( cmail) = "U"
cmail := Space(1)
EndIf
cmail := Upper( cmail )
Traza(1, "cmail=", cmail )

cdatanaix := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 4 ), "Value" )
If Valtype( cdatanaix) = "U"
cdatanaix := CToD("01/01/1900")
elseIf Valtype( cdatanaix) = "C"
cdatanaix := CToD(cdatanaix)
EndIf
Traza(1, "cdatanaix=", cdatanaix)

cCognoms := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 7 ), "Value" )
If Valtype( ccognoms) = "U"
ccognoms := space(1)
EndIf
cCognoms := Upper( ccognoms )
Traza(1, "ccognoms=", ccognoms )

cNom := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 8 ), "Value" )
If Valtype( cnom) = "U"
cnom := space(1)
EndIf
cNOM := Upper( cNOM )
Traza(1, "cnom=", cNOM )

cLOPD := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 10 ), "Value" )
If Valtype( clopd) = "U"
clopd := .F.
Else
clopd := .T.
EndIf
Traza(1, "clopd=", cLOPD )

OLEInvoke( oExcel, "Quit" )
==========================

Es lento pero funciona.

Saludos
Carlos G.
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post by Vikthor »

Les recomiendo que se den una vuelta por :

http://vikthor.com.mx/fivewin

en la seccion enlaces y busquen la liga a la página de José Giménez
Vikthor
User avatar
QAZWSX2K
Posts: 359
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

Re: que sirva

Post by QAZWSX2K »

gracias aunque interesante si me dijeras que hace la funcion traza()

FiveWiDi wrote:
QAZWSX2K wrote:saludos preferiblemente de harbour pero me conformo con alguna que sirva ya que no leen desde excel, da error de property no se que cosa en GETproperty workbooks o algo asi, me tiene verde, tengo mas de 2 meses en este detalle, gracias
En Harbour y sin librerías adicionales, yo lo hago así (ahora me doy cuenta de que no estoy eliminando al final oExcel ni oHoja):

==========================
oExcel := CreateOLEObject("Excel.Application")
OLESetProperty(oExcel,"Visible", .T.)
OLEInvoke( OLEGetProperty(oExcel,"Workbooks"), "Open", cPathxls )
oHoja := OLEGetProperty(oExcel,"ActiveSheet")

ccognoms := "zzz"
nRow := 1

While AllTrim( ccognoms ) <> ""

nRow ++

Msgnowait( AMPAarra, "Atención!" , "Leyendo e importando datos." + ;
" Espere unos momentos por favor...." )

cCCC := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 2 ), "Value" )
If Valtype( cCCC) = "U"
cCCC := "00000000000000000000"
EndIf
cccc := Upper( cccc )
Traza(1, "cccc=", cccc )

cmail := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 3 ), "Value" )
If Valtype( cmail) = "U"
cmail := Space(1)
EndIf
cmail := Upper( cmail )
Traza(1, "cmail=", cmail )

cdatanaix := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 4 ), "Value" )
If Valtype( cdatanaix) = "U"
cdatanaix := CToD("01/01/1900")
elseIf Valtype( cdatanaix) = "C"
cdatanaix := CToD(cdatanaix)
EndIf
Traza(1, "cdatanaix=", cdatanaix)

cCognoms := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 7 ), "Value" )
If Valtype( ccognoms) = "U"
ccognoms := space(1)
EndIf
cCognoms := Upper( ccognoms )
Traza(1, "ccognoms=", ccognoms )

cNom := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 8 ), "Value" )
If Valtype( cnom) = "U"
cnom := space(1)
EndIf
cNOM := Upper( cNOM )
Traza(1, "cnom=", cNOM )

cLOPD := OleGetProperty( OleGetProperty( oHoja, "Cells", nRow, 10 ), "Value" )
If Valtype( clopd) = "U"
clopd := .F.
Else
clopd := .T.
EndIf
Traza(1, "clopd=", cLOPD )

OLEInvoke( oExcel, "Quit" )
==========================

Es lento pero funciona.

Saludos
Carlos G.
Post Reply