FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Exportar campos MEMO a excel con TFileXLS
Posts: 211
Joined: Wed Jul 16, 2008 12:59 PM
Exportar campos MEMO a excel con TFileXLS
Posted: Fri Feb 14, 2020 04: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 (fw): Select all Collapse
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
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
Re: Exportar campos MEMO a excel con TFileXLS
Posted: Fri Feb 14, 2020 05:29 PM

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

or

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

EMG

Continue the discussion