![]() |
Excel Export und Unicode
Hallo,
um eine einfache Excel-Tabelle zu erzeugen, nutze ich den Code dieser Seite: ![]() 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:
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.
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; 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! |
Re: Excel Export und Unicode
Kann es sein das die Schweizer hier nur Nicht-Unicodefähige XLS-Dateien erzeugen? Bei MS gibt's 'ne
![]() |
Re: Excel Export und Unicode
Ja, so etwas in der Art habe ich mir ja auch gedacht. Also das man Excel eben sagen muss, dass es sich explizit um Unicode handelt. Vielen Dank für das Dokument, ich werde mich da mal durchkämpfen. Besonders das Kapitel BIFF8 und Unicode Strings scheint ja schon mal in die Richtung zu gehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz