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?
[gelöst]Methode setString = Zahlenformat?
Moderator: Moderatoren
[gelöst]Methode setString = Zahlenformat?
Zuletzt geändert von clag am Fr, 19.08.2016 13:53, insgesamt 1-mal geändert.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Methode setString = Zahlenformat?
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
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
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Methode setString = Zahlenformat?
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:aber gleichzeitigt zwingt diese Schreibaktion die Zelle in das Zahlenformat!
Das erscheint mir unlogisch, selbst eine vorher gesetzte Text Formatierung wird wieder "platt" gemacht.
Code: Alles auswählen
Sub Main
ThisComponent.Sheets(0).getCellByPosition(0,0).setString("abc")
End Sub
Gruß
Stephan
Re: Methode setString = Zahlenformat?
Hey Clag,
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
Nicht unbedingt. Sie kann einen String schreiben - tatsächlich schreibt sie nur den Stringwert (Text) des Zellinhaltes.Die Methode "setString" schreibt einen String in die gewählte Zelle soweit ok,
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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Methode setString = Zahlenformat?
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
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
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox