a)
ein NumericField setzt keinen Text, das machst Du mit einer Anweisung
Code: Alles auswählen
ThisComponent.Sheets().getByName("Tabelle1").getCellByPosition(2,3).String = numField.getValue()
Setze den Zell
wert
Code: Alles auswählen
ThisComponent.Sheets().getByName("Tabelle1").getCellByPosition(2,3).Value = numField.getValue()
b)
eine Zahlenformatierung findet über die Zahlenformate des Dokuments statt; zweistufige Kodierung:
1. Abfrage des gewünschten Formats
2. Anwenden des erfragten oder neu eingetragenen Codes
aus meiner Extension DateTime2:
Code: Alles auswählen
Dim aLocale As New com.sun.star.lang.Locale
oFormats = oDokument.NumberFormats
nDateTime_Format_DATE = _
oFormats.queryKey( MYDATEFORMAT, aLocale, True )
' Schluesselwert nicht gefunden: hinzufuegen Format
' format not found - key not returned: add format
If nDateTime_Format_DATE < 0 Then
nDateTime_Format_DATE = _
oFormats.addNew( MYDATEFORMAT, aLocale )
End If
MYDATEFORMAT ist ein Zeichenkette mit einem gültigen Formatcode, in dem Fall "JJJJ-MM-TT"
Die Zuweisung in CALC erfolgt dann über das Attribut
NumberFormat der Zelle/des Zellbereichs/der Zellvorlage.
Ich empfehle die Erstellung und Verwendung einer Vorlage ggü. einer direkten Zuweisung (welche einer manuellen Formatierung entspricht). Vorteile sind Wiederverwendbarkeit, leichteres Auffinden und/oder Ändern und Vererbbarkeit innerhalb der Vorlagenfamilie.
Hilft das weiter?