Página 1 de 1
Leer Excel
Publicado: Mar Feb 14, 2006 11:01 pm
por Xevi
Ramón,
Revisa un Sample que he colgado unos post mas abajo...
Mailto del 06/02/2006 de Paco V... dentro del Post, verás un ejemplo de OLE
y MAPI...
Un Saludo,
Xevi.
"Ramón Zea" <
zeasoftware@hotmail.com> escribió en el mensaje
news:[email=
43f251e1@ozsrvnegro.ozlan.local...]
43f251e1@ozsrvnegro.ozlan.local...[/email]
>
> Estoy intentando leer un archivo de excel pero me regresa nil o me marca
> error GPF, que estoy haciendo mal?
>
> TRY
> oExcel := GetActiveObject( "Excel.Application" )
> CATCH
> TRY
> oExcel := CreateObject( "Excel.Application" )
> CATCH
> Alert( "ERROR! Excel not avialable. [" + Ole2TxtError()+ "]" )
> RETURN Nil
> END
> END
>
> oExcel := TOleAuto():New( "Excel.Application" )
>
> oExcel:WorkBooks:Open(Application:cDirectory+"Precios Unitarios
> Tecnico.xls")
>
> oAS := oExcel:ActiveSheet() //oExcel:Get( "ActiveSheet" )
>
> For _nRow_ := 1 to ::oEdit2:value
> For _nColumn_ := 1 to ::oEdit3:value
> ::oEdit1:value := oAS:Cells( _nRow_, _nColumn_ ):Value
>
> Next
> Next
>
>
> Gracias por la ayuda.
>
> Ramón Zea
>
>
Leer Excel
Publicado: Jue Feb 16, 2006 3:25 am
por Yamil Bracho
Ramon quita la llamada a TOleAuto. te queda algo como
TRY
oExcel := GetActiveObject( "Excel.Application" )
CATCH
TRY
oExcel := CreateObject( "Excel.Application" )
CATCH
Alert( "ERROR! Excel not avialable. [" + Ole2TxtError()+ "]" )
RETURN Nil
END
END
oExcel:WorkBooks:Open(Application:cDirectory+"Precios Unitarios
Tecnico.xls")
oAS := oExcel:ActiveSheet() //oExcel:Get( "ActiveSheet" )
For _nRow_ := 1 to ::oEdit2:value
For _nColumn_ := 1 to ::oEdit3:value
::oEdit1:value := oAS:Cells( _nRow_, _nColumn_ ):Value
Next
Next
>
Leer Excel
Publicado: Jue Feb 16, 2006 1:51 pm
por zeasoftware
gracias yamil.
hay alguna manera de saber los metodos disponibles de un objeto no
docmentado?
me explico, quiero saber que methodos y datos tiene disponible un objeto,
mediante alguna funcion que me extraiga dicha informacion y que pueda
presentarla en alguna parte de la pantalla.
Explicitamente en mi tema de excel, quiero copiar una hoja de un archivo
..xls a otro nuevo.
GRacias
Ramón Zea
Leer Excel
Publicado: Vie Feb 17, 2006 2:12 am
por Yamil Bracho
Ramon, la manera mas facil es hacer la macro en Excel y capturar el codigo
VBA (Visual basic for Application).
y/o consultar la ayuda de Visual Basic for Applications relacionada al
componente de Office como VBA para Word, VBA, para Excel, etc
"Ramón Zea" <
zeasoftware@hotmail.com> escribió en el mensaje
news:[email=
43f4594b@ozsrvnegro.ozlan.local...]
43f4594b@ozsrvnegro.ozlan.local...[/email]
> gracias yamil.
>
> hay alguna manera de saber los metodos disponibles de un objeto no
> docmentado?
>
> me explico, quiero saber que methodos y datos tiene disponible un objeto,
> mediante alguna funcion que me extraiga dicha informacion y que pueda
> presentarla en alguna parte de la pantalla.
>
> Explicitamente en mi tema de excel, quiero copiar una hoja de un archivo
> .xls a otro nuevo.
>
> GRacias
> Ramón Zea
>
Leer Excel
Publicado: Vie Feb 17, 2006 5:43 pm
por jfgimenez
Ramón,
> ya hice eso, lei la pagina donde vienen los comandos, pero, el problema es
> la equivalencia para usarlas en xHarbour y por ende en Xailer.
Traducir un ejemplo de VBA a xHarbour es sencillo. Basta con aplicar un par
de reglas:
- VBA usa el punto (.) para nombrar los miembros de los objetos, mientras
que xHarbour usa los dos puntos (:)
- Los métodos que no aparecen dependientes de algún objeto en VBA, es que
pertenecen al objeto Application de VBA, que en el caso de xHarbour es el
objeto que has instanciado como oExcel.
Este es un ejemplo sacado directamente de la ayuda de VBA para Excel,
concretamente de la propiedad Cells:
For rwIndex = 1 to 4
For colIndex = 1 to 10
With Worksheets("Sheet1").Cells(rwIndex, colIndex)
If .Value < .001 Then .Value = 0
End With
Next colIndex
Next rwIndex
Pues bien, su equivalente en xHarbour es:
FOR rwIndex := 1 TO 4
FOR colIndex := 1 TO 10
WITH OBJECT oExcel:Worksheets( "Sheet1" ):Cells( rwIndex,
colIndex )
IF :Value < .001
:Value := 0
ENDIF
END WITH
NEXT
NEXT
Como ves, es muy muy parecido.
> por eso estoy intentando leer los methodos que contiene la clase tOle o el
> Application.Excel, o a ver si se aparecen los marcianitos poniendo
> letreritos, jejeje, es ironia.
No busques en la clase TOleAuto que no vas a encontrar nada de Excel. Esa
clase es un interface entre xHarbour y OLE, pero es genérica para cualquier
servidor de automatización OLE, pero no tiene nada específico sobre Excel o
cualquier otro servidor.
--
Un saludo,
José F. Giménez
Leer Excel
Publicado: Vie Feb 17, 2006 6:21 pm
por zeasoftware
ya hice eso, lei la pagina donde vienen los comandos, pero, el problema es
la equivalencia para usarlas en xHarbour y por ende en Xailer.
por eso estoy intentando leer los methodos que contiene la clase tOle o el
Application.Excel, o a ver si se aparecen los marcianitos poniendo
letreritos, jejeje, es ironia.
Mil gracias.
Sigo investigando......
Ramón Zea