Exportar campos MEMO a excel con TFileXLS

Exportar campos MEMO a excel con TFileXLS

Postby RSalazarU » Fri Feb 14, 2020 4:18 pm

Amigos del foro:

Utilizo la clase TFileXLS para generar archivos excel. todo OK

Ahora al generar un archivo con campos memo, el archivo generado no puede ser reconocido por EXCEL.

El problema esta en el metodo String() de la clase
Code: Select all  Expand view  RUN

METHOD String( nRow, nCol, cString, ;
               lHidden, lLocked, nFont, nFormat, lShaded, ;
               nBorder, nAlignament ) CLASS TFileXLS

  local nLen := Len( cString )

  DEFAULT lHidden := .f., lLocked := .f., nFont := 0, nFormat := 0, lShaded := .f., ;
          nBorder := BORDER_NONE, nAlignament := ALING_NULL

  FWrite( ::hFile, Chr( 04 ) + Chr( 00 ), 2 )
  FWrite( ::hFile, I2Bin( 08 + nLen ), 2 ) //<- Aca coloca la longitud del texto

  ::PutCoors( nRow, nCol )
  ::PutAttributes( lHidden, lLocked, nFont, nFormat, lShaded, ;
                   nBorder, nAlignament )

  FWrite( ::hFile, Chr( nLen ), 1 ) //<- Aca coloca la longitud del texto con CHR() y si es de mas de 256 CHR() Falla
  FWrite( ::hFile, cString, nLen )

return nil


Al parecer solo puede procesar texto de menos de 255 caracteres por que usa la funcion CHR(??) para especificar la longitud del STRING ( CHR(300) Falla )

Alguien me puede dar una mano para mejorar el codigo.

De antemano muchas gracias

Rolando
Cochabamba, Bolivia
RSalazarU
 
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia

Re: Exportar campos MEMO a excel con TFileXLS

Postby Enrico Maria Giordano » Fri Feb 14, 2020 5:29 pm

CHR( 44 ) + CHR( 1 ) = 44 + 1 * 256 = 300 (little endian)

or

CHR( 1 ) + CHR( 44 ) = 1 * 256 + 44 = 300 (big endian)

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8719
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], JoseAlvarez and 56 guests