by Julio Cepeda » Fri Oct 13, 2006 8:59 am
Efectivamente Rene no funcionaba porque no tenía el Excel instalado, pues ahora funciona perfectamente.
Lo único es que me daba un error al terminar por cerrar la hoja:
oHoja:End()
oHoja:Quit()
Me lo daba con los dos métodos, Quit y End pero se lo he comentado y funciona perfectamente.
Te lo agradezco mucho porque tengo 3 aplicaciones que se lo mandan en Excel y yo lo que hacía era guardarlo desde Excel como archivo DBF y despues desde este importarlo al mío, y era un rollo.
Al final el que me funciona bien es este:
#include "FiveWin.ch"
#define NL Chr( 10 ) + Chr( 13 )
Function MAin()
LOCAL oExcel, oHoja, nRows, nCols
LOCAL aCampos:={}, nRow, nCol
LOCAL cTexto := Space( 0 ), xValue
oExcel := TOleAuto():New( "Excel.Application" )
oExcel:Visible := .T. // por si quieres ver la hoja abierta
oExcel:WorkBooks:Open( cGetFile32("*.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
*/
FOR nRow := 2 TO nRows
cTexto := Space( 0 )
FOR nCol := 1 TO nCols
xValue := oHoja:Cells(nRow,nCol):Value
// MsgInfo( ValType( xValue ) )
cTexto += xValue + NL
// SysRefresh()
NEXT
MsgInfo( cTexto )
NEXT
Memory(-1)
// oHoja:End()
// oHoja:Quit()
oExcel:Quit()
// oExcel:End()
Return NIL
Muchisimas gracias de nuevo y quedo a tu disposición para lo que gustes.
Un saludo.