LabVIEWForum.de - Probleme mit Variant aus Excel Sheet

LabVIEWForum.de

Normale Version: Probleme mit Variant aus Excel Sheet
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe LVUser,

ich habe ein Excel Sheet erstellt in dem aus einer Ansammlung von Messdaten die Standardabweichung in einem Feld berechnet wird. Dieses Feld lese ich dann aus der der xls (es muss xls sein) Datei aus. Erstmal habe ich wirklich jede Moeglichkeit probiert, das Feld auszuelesen ohne eine Ausgabe im Variant Format zu erhalten. Aber dies scheint ohne das Office Kit von NI nicht moeglich. (Ich benutze ActiveX siehe Anhang) Nun entsteht folgendes Problem. Ich wandle die Variant Variable mittels Variant to Data in einen String um. Die Variant Ausgabe sieht so aus, zb Value -> 28.469E-6 und die einfach Umwandlung in den String liefert eine Zahl. Diese ist voellig richtig solang der Wert im Excel Sheet groesser als 0.1 ist. Jetzt geht aber irgendwie etwas bei der Umwandlung in den String schief, denn sobald der Wert <0.1 wird, ist die Ausgabe als String 9.xxxxx. Naehert sich dieser String wieder einer Zahl kleiner eins an springt der String wieder zu 9.xxxxxx. D.h. er erzwingt immer irgendwie eine Zahl die >1 ist, obwohl der eigentliche Wert schon 3*10^-6 und kleiner ist. Die Variant Ausgabe ist immer korrekt also scheint es am Auslesen nicht zu liegen. Zumal, wenn ich einfach eine feste Zahl in die xls eingebe und auslese ist der String auch mit beliebigen Kommastellen richtig.

Ich bin ratlos...

(Angehaengt ist der Mechanismus des Auslesens und ein Beispiel wo der Fehler auftritt. Ich habe "nur" LV6.1)
Was Du da hast, müsste dieses Bsp. sein (sieht zumindest gleich aus). Ich kann es leider nicht runterspeichern.
[attachment=20634]
Lv09_img2

Allerdings funktioniert es hier bei mir mit LabVIEW 2009 problemlos auch mit Zahlen unter 0,5.

Hast Du keine neuere Version zur Verfügung?

Gruß Markus
aber gut dass du mir zumindest sagst es ist so wie in der Datei die du gepostet hast. Ich hätte viell. noch vermutet, dass ich mit den ActiveX Objekten Mist gebaut habe, denn ich hab mir das selbst zusammengebastelt. Könntest du viell. trotzdem einen Screenshot von der Auslese Routine mit anhängen?

Nein, Version 6.1 ist alles was ich hab. Gibt es viell. noch andere Optionen die Variant zu verwerten oder generell die Werte aus der xls anders zu erhalten? Es scheint ja komischerweise auch damit einherzugehen, dass ein Feld ausgelesen wird, was eine Formel (STDEV) enthält...
jetzt habe ich irgendwie den EDIT verhauen, hier nochmal:

---EDIT: Als Screenshot würde mich besonders GetXL_CellValue_String.vi interessieren, weil es eine solche vi in der Bibliothek von LV 6.1 nicht gibt. Es steht an mehreren Stellen einfach, die Prop Node von Read to Write ändern, danach ist aber die Range Method im Eimer...
Hier sind die Screenshots.

Gruß Markus
vielen dank erstmal fuer deine muehe, ich hatte es bis auf eine nuance gleich, hab diese geandert und das selbe Problem besteht weiterhin genau so, gibt es noch eine andere Moeglichkeit ausser active x und diesem office kit? oder ist es moeglich in einer excel tabelle die zahl von der formel zu trennen, denn wenn ich einfach zahlen einlese stimmt alles, nur mit dem feld wo die zahl durch eine formel entsteht kommt LV nicht klar...
Anstelle des Methodenknotens "Range.Value" könntest du auch versuchen die Eigenschaft ".Value2" oder gleich ".Text" der Range auszuwerten.

.Value2 würde dir dann wieder Werte wie 28.469E-6 liefern, wogegen
.Text direkt einen String liefert wie 0,00002846, den du ja dann nach DBL umwandeln könntest.

Leider hab ich kein LV6.1 zum ausprobieren. Mit LV8.6 klappts aber.

Gruß SeBa


EDIT:
.Text liefert bei sehr kleinen Zahlen wohl auch Exp. Notation... aber du kannst ja das Format der Zelle in Excel direkt auf Zahl mit XYZ Nachkommastellen setzen. Dann bekommst du immer eine Zahl mit Nachkommastellen ohne Exp.
Ok Leute, ich entschuldige mich fuer diese Schande, aber von Seba kam der entscheidende Hinweis. Der Textknoten reduziert die Kommastellen bis zur ExpDarstellung so, dass die ganze Zahl ins Fenster passt. Die Funktion Value dagegen, naja, zeigt 15-20 Stellen vorher and, sodass die Exponentendarstellung durch das zu kleine Fenster verschluckt wurde, es tut mir wirklich aeusserst leid und ich danke fuer die umfangreiche HilfeSmile
Danke für die Rückmeldung. Top2

Gruß Markus

' schrieb:Ok Leute, ich entschuldige mich fuer diese Schande, aber von Seba kam der entscheidende Hinweis. Der Textknoten reduziert die Kommastellen bis zur ExpDarstellung so, dass die ganze Zahl ins Fenster passt. Die Funktion Value dagegen, naja, zeigt 15-20 Stellen vorher and, sodass die Exponentendarstellung durch das zu kleine Fenster verschluckt wurde, es tut mir wirklich aeusserst leid und ich danke fuer die umfangreiche HilfeSmile
Referenz-URLs