Seite 1 von 1
[gelöst]Methode setString = Zahlenformat?
Verfasst: So, 14.08.2016 17:46
von clag
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?
Re: Methode setString = Zahlenformat?
Verfasst: So, 14.08.2016 19:16
von F3K Total
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
Re: Methode setString = Zahlenformat?
Verfasst: So, 14.08.2016 19:19
von Stephan
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?
Verfasst: Mo, 15.08.2016 09:49
von Toxitom
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?
Verfasst: Mo, 15.08.2016 18:25
von clag
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