Thema: Delphi Excel Export und Unicode

Einzelnen Beitrag anzeigen

martinf16

Registriert seit: 26. Aug 2007
99 Beiträge
 
Turbo Delphi für Win32
 
#1

Excel Export und Unicode

  Alt 19. Dez 2009, 18:17
Hallo,

um eine einfache Excel-Tabelle zu erzeugen, nutze ich den Code dieser Seite:

http://www.swissdelphicenter.ch/de/showcode.php?id=725

Das funktioniert auch alles fabelhaft, allerdings natürlich nicht mit Unicode. Deswegen habe ich die Funktion etwas umgeschrieben, sprich String durch WideString ausgetauscht und SizeOf hinzugefügt.

Delphi-Quellcode:
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
  const AValue: WideString);
var
  L: Word;
begin
  L := Length(AValue)*SizeOf(WideChar);
  CXlsLabel[1] := 8 + L;
  CXlsLabel[2] := ARow;
  CXlsLabel[3] := ACol;
  CXlsLabel[5] := L;
  XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel));
  XlsStream.WriteBuffer(Pointer(AValue)^, L);
end;
Die resultierende Excel-Datei weißt keinerlei Fehler auf, allerdings werden die 2 Bytes eines jeden Unicode Zeichens als 2 ANSI Zeichen interpretiert (Beispiel: aus 音碼 wird ó—¼x), was natürlich nicht sein sollte.

Ich nehme an, es muss nur eine Kleinigkeit geändert werden, damit es funktioniert. Vielleicht so etwas wie eine Byte Order Mark, dass Excel weiß, wie man die Daten interpretieren soll oder vielleicht auch ein anderes Format, in das der WideString erst einmal konvertiert worden muss?! Ich hoffe es weiß jemand weiter... Vielen Dank schonmal!
  Mit Zitat antworten Zitat