PDA

Ver la Versión Completa : Problema con caracteres al exportar datos hacia excel con una rutina antígua


rrf
15-02-2018, 19:47:35
Hola.

Estoy intentando exportar unos datos (texto y números) desde un programa hecho con Delphi 10.2 starter hacia una hoja de cálculo excel.

Utilizo una rutina que he sacado de este enlace: https://cc.embarcadero.com/item/13462 . Es de 1999.

La exportación de números funciona normalmente, aunque el texto no lo hace bien, porque solo aparece la primera letra del texto en cada celda, y a veces no aparece nada.

Esta rutina, fue escrita hace bastantes años y quizás por ello es incompatible con la versión actual de Delphi (funciona normalmente en Delphi 7) en algún aspecto relacionado con manejar las cadenas de texto.

¿Alguien sabe cómo corregir esto?.

Gracias de antemano.

Saludos.

Casimiro Notevi
15-02-2018, 21:46:01
Mira algunos de los enlaces de final de página, abajo del todo.

rrf
16-02-2018, 00:18:57
Gracias Casimiro.

Ya he revisado los enlaces y no he encontrado algo que me resuelva la duda.
Creo que el problema radica en que Delphi 10.2 es incompatible con lo que hace esa rutina. Con Delphi 7 funciona bien.

Seguramente la causa es que Delphi 10.2 maneja los String de forma diferente a los antiguos Delphi (como Delphi 7), y solo reconoce el primer carácter de cada cadena de caracteres. Y posiblemente haya alguna función que permita una conversión o algo así, eso es lo que quisiera saber.

Casimiro Notevi
16-02-2018, 01:06:01
Prueba a cambiar esto:
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word; const AValue: string);
Por esto otro:
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word; const AValue: ansistring);

rrf
16-02-2018, 01:22:34
Muchas gracias Casimiro.

Ese era el "detalle" que no fui capaz de ver y que tan rápidamente has descubierto.

El problema está solucionado y esta rutina sigue siendo útil (19 años después de haber sido escrita).

Recibe mi más sincero agradecimiento por tu ayuda.

Casimiro Notevi
16-02-2018, 01:43:26
^\||/^\||/^\||/