Clase para leer / escribir hojas de excel

Clase para leer / escribir hojas de excel

Postby devtuxtla » Wed Sep 28, 2016 3:03 pm

Hola FiveWinners

Cual es la clase para leer y/o escribir hojas de excel, sin que tengas excel instalado en tu sistema?

Gracias...

Saludos
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: Clase para leer / escribir hojas de excel

Postby karinha » Wed Sep 28, 2016 7:02 pm

Mira se ayuda:

Code: Select all  Expand view

FUNCTION ReadFromExcel( cFile, xColumnas, nHojaExcel, nFilasVacias, lConvertNulls )

LOCAL oExcel, oPage
LOCAL aDatos := {}, aLinea := {}, nLine := 0, nCol := 0, lVacio := .F., nContador:=0
LOcal nFilas:=0, nColumnas:=0

DEFAULT xColumnas TO 256
DEFAULT nHojaExcel TO 1
DEFAULT nFilasVacias TO 20
DEFAULT lConvertNulls TO .T.


IF !File( cFile )
MsgStop( "No existe el documento Excel " + cFile)
RETURN {}
ENDIF

TRY
oExcel := GetActiveObject( "Excel.Application" )
CATCH
TRY
oExcel := CreateObject( "Excel.Application" )
CATCH
MsgInfo( "Excel no disponible. [" + Ole2TxtError() + "]" )
RETURN .F.
END
END

oExcel:WorkBooks:Open( cFile )
oPage := oExcel:WorkSheets( nHojaExcel )

If ValType(xColumnas)="A"
nFilas:=xColumnas[1]
nColumnas:=xColumnas[2]
Else
nColumnas:=xColumnas
Endif

MsgWait( "Leyendo datos de Hoja Excel",,"Excel" )

FOR nLine := 1 TO 65536
lVacio := .T.
aLinea := {}
FOR nCol := 1 TO nColumnas
AAdd( aLinea, IF(lConvertNulls .And. oPage:Cells( nLine, nCol ):Value=Nil,'',oPage:Cells( nLine, nCol ):Value ) )
IF lVacio .AND. !Vacio( aLinea[ Len( aLinea ) ] )
lVacio := .F.
nContador := nFilasVacias
ENDIF
NEXT

//Limite de filas si se ha requerido
If nFilas<>0 .And. nLine>nFilas
Exit
Endif

IF lVacio
nContador--
IF nContador = 0
EXIT
ENDIF
ELSE

AAdd( aDatos, aLinea )
ENDIF
NEXT

oExcel:Quit()

RETURN aDatos
 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7613
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Clase para leer / escribir hojas de excel

Postby karinha » Wed Sep 28, 2016 7:07 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7613
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Clase para leer / escribir hojas de excel

Postby devtuxtla » Wed Sep 28, 2016 11:39 pm

Hola Karinha.

Gracias por responder, pero los dos ejemplos requieren tener instalado MS OFFICE en la PC donde se ejecuta.

El proceso de lectura y escritura de tablas de excel se ejecutara del lado de server, donde NO se permite tener OFFICE o algo similar como OPEN OFFICE.

Asi que la lectura / escritura deber ser sin EXCEL.

Saludos
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: Clase para leer / escribir hojas de excel

Postby karinha » Thu Sep 29, 2016 1:38 pm

y si usted pasar a *.PDF puede ó no? Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7613
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Clase para leer / escribir hojas de excel

Postby horacio » Thu Sep 29, 2016 2:25 pm

Puedes usar la clase TFileXls que escribe un archivo .xls sin necesidad de tener instalado Ms-Office.

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 53 guests