AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wert ändert sich beim Schreiben in Excelzelle
Thema durchsuchen
Ansicht
Themen-Optionen

Wert ändert sich beim Schreiben in Excelzelle

Ein Thema von Jens Schumann · begonnen am 25. Sep 2008 · letzter Beitrag vom 29. Sep 2008
Antwort Antwort
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Wert ändert sich beim Schreiben in Excelzelle

  Alt 25. Sep 2008, 18:35
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
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Wert ändert sich beim Schreiben in Excelzelle

  Alt 25. Sep 2008, 18:55
Zitat von Jens Schumann:
Der Debugger zeigt, dass in Value -97897846,3556414 steht
Lass dir mal den VarType anzeigen.
ShowMessageFmt('vartype=%d', [VarType(value)]); Das Ergebnis müsste eigentlich der Konstanten varDouble entsprechen.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Wert ändert sich beim Schreiben in Excelzelle

  Alt 29. Sep 2008, 09:41
Hallo sx2008,
guter Tip. Der Wert wurde als String gelesen.
Ein explizier Cast in ein Double hat das Problem gelöst.

Danke
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 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