[gelöst]Methode setString = Zahlenformat?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst]Methode setString = Zahlenformat?

Re: Methode setString = Zahlenformat?

von clag » Mo, 15.08.2016 18:25

Hallo zusammen,

ersteinmal besten Dank für eure Antworten.
Mein Problem ist nun, ich kann nicht mehr reproduzieren was mich gestern über 2 Std beschäftigt hat. :-?
Aber es könnte möglicherweise eine falsche Erwartungshaltung meinerseits gewesen sein nämlich, das immer ein Textstring geschrieben wird.

also "tschuldigung" für den blinden Alarm

Re: Methode setString = Zahlenformat?

von Toxitom » Mo, 15.08.2016 09:49

Hey Clag,
Die Methode "setString" schreibt einen String in die gewählte Zelle soweit ok,
Nicht unbedingt. Sie kann einen String schreiben - tatsächlich schreibt sie nur den Stringwert (Text) des Zellinhaltes.

Eine Zelle kann nur drei unterschiedliche Inhalte (Typen) aufnehmen: Strings , Values oder Formeln (oder eben nichts). Der Inhalt selbst wird über die Type-Eigenschaft festgelegt. Da du den Type jedoch nicht explizit festlegen kannst, wird der eingegebene Wert interpretiert und entsprechend des Ergebnisses die Zelle formatiert (der Type gesetzt).

Wenn Du also schreibst :
- oZelle.setString("123") wird dies als Zahl gewertet, der Type erhält den Wert "1" und die Zelle wird numerisch formatiert.
- oZelle.setString("'123") wird dies als String gewertet, der Type erhält den Wert "2" und die Zelle wird textmäßig formatiert.
- oZelle.setString("=1+123") wird dies als Formel gewertet, der Type erhält den Wert "3" und die Zelle wird das Ergebnis der Formel anzeigen.

Funktioniert übrigens auch, wenn Du statt SetString() setFormula() nimmst.

Also: Nicht jeder "setString()" Wert ist immer ein Text!

VG Tom

Re: Methode setString = Zahlenformat?

von Stephan » So, 14.08.2016 19:19

aber gleichzeitigt zwingt diese Schreibaktion die Zelle in das Zahlenformat!
Das erscheint mir unlogisch, selbst eine vorher gesetzte Text Formatierung wird wieder "platt" gemacht.
kann ich nicht nachvollziehen, getestet mit AOO 4.1.2 und OOo 3.3.0 (Win 7) und den Zellformatierungen "@" und "#.##0,00;[ROT]-#.##0,00", sowie dem Makro:

Code: Alles auswählen

Sub Main
ThisComponent.Sheets(0).getCellByPosition(0,0).setString("abc")
End Sub



Gruß
Stephan

Re: Methode setString = Zahlenformat?

von F3K Total » So, 14.08.2016 19:16

Hallo Clag,
tut mir leid, ich kann das nicht nachvollziehen, ob per Zellvorlage oder hart formatiert, am eingestellten Format ändert sich bei mir durch .setstring nichts.
Gruß R

[gelöst]Methode setString = Zahlenformat?

von clag » So, 14.08.2016 17:46

Hallo Kenner und Könner,
eine Kleingkeit an der Methode "setString" irritiert mich bzw. ich verstehe es nicht und ich hoffe auf Aufklärung.

Die Methode "setString" schreibt einen String in die gewählte Zelle soweit ok,
aber gleichzeitigt zwingt diese Schreibaktion die Zelle in das Zahlenformat!
Das erscheint mir unlogisch, selbst eine vorher gesetzte Text Formatierung wird wieder "platt" gemacht.
Hat das einen besonderen Grund, wenn ja welchen?

Nach oben