Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wert ändert sich beim Schreiben in Excelzelle (https://www.delphipraxis.net/121325-wert-aendert-sich-beim-schreiben-excelzelle.html)

Jens Schumann 25. Sep 2008 18:35


Wert ändert sich beim Schreiben in Excelzelle
 
Hallo,
ich habe es mit einem Problem zu tun, auf das ich noch nie gestoßen bin.
Ich habe schon viele Programme geschrieben, die mit Excel 2003 zusammenarbeiten.

Was passiert.

In einer Excelzelle steht der Wert -97897846,3556414 (Formatierung #,##0.00)
Den Wert lese ich in einen OleVariant

Value : OleVariant

Der Debugger zeigt, dass in Value -97897846,3556414 steht

Jetzt schreibe ich den Wert auf einem anderen Arbeitsblatt in eine Zelle.
In der Zelle steht nicht wie erwartet -97897846,3556414 sondern -978978463556414
So wie es aussieht ist das Komma verschwunden.

Wenn in der Ausgangszelle ein Wert mit nur zwei Kommastellen steht (z.B.-97897846,35)
dann funktioniert es :gruebel:

sx2008 25. Sep 2008 18:55

Re: Wert ändert sich beim Schreiben in Excelzelle
 
Zitat:

Zitat von Jens Schumann
Der Debugger zeigt, dass in Value -97897846,3556414 steht

Lass dir mal den VarType anzeigen.
Delphi-Quellcode:
ShowMessageFmt('vartype=%d', [VarType(value)]);
Das Ergebnis müsste eigentlich der Konstanten varDouble entsprechen.

Jens Schumann 29. Sep 2008 09:41

Re: Wert ändert sich beim Schreiben in Excelzelle
 
Hallo sx2008,
guter Tip. Der Wert wurde als String gelesen.
Ein explizier Cast in ein Double hat das Problem gelöst.

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz