[Gelöst] Datum als Datum einfügen, nicht als String

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

[Gelöst] Datum als Datum einfügen, nicht als String

Beitrag von Reginald »

Hallo zusammen,

mit dem Code hier in Calc

Code: Alles auswählen

mydoc = ThisComponent
mySheet = myDoc.sheets(0)
mysheet.getCellByPosition(0,0).String = FileDateTime ("C:\autoexec.bat")
lasse ich mir das Änderungsdatum mit Uhrzeit in die Zelle A1 schreiben, allerdings packt mir OO immer das Hochkomma davor, also behandelt es als Text. Wenn ich statt .String .Formula nehme passiert das gleiche. Nehme ich .Value habe ich immer nur eine 0 als Wert.

Ich brauche das ganze als echtes Datum, nicht als String in der Zelle.

Was tun sprach Zeus?

Grüße R
Zuletzt geändert von Reginald am Sa, 04.02.2012 11:32, insgesamt 1-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datum als Datum einfügen, nicht als String

Beitrag von komma4 »

Reginald hat geschrieben:Wenn ich statt .String .Formula nehme passiert das gleiche. Nehme ich .Value habe ich immer nur eine 0 als Wert.
F1 Hilfe zu FileDateTime hat geschrieben:Gibt eine Zeichenkette zurück, die Datum und Uhrzeit der Erstellung oder letzten Änderung einer Datei enthält.
Da die Rückgabe eine Zeichenkette ist - kann nichts anderes gesetzt werden (der Wert [.Value] einer Zeichenkette ist 0)

Verwende zusäzlich die Funktion DateValue um einen gültigen Zahlenwert mit .Value zu setzen.


Das hilft Dir weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: Datum als Datum einfügen, nicht als String

Beitrag von Frieder D. »

Hallo

versuche es mahl damit:

Code: Alles auswählen

Sub Main
Dim mydoc AS Object
Dim mySheet AS Object
Dim myCell AS Object
mydoc = ThisComponent
mySheet = myDoc.sheets(0)
myCell=myDoc.sheets(0).getCellByPosition(3,0)
myCell.Value = DateValue(FileDateTime (myDoc.URL))
setNumberFormat(mydoc , myCell, "TT.MM.JJJJ")
End Sub
'-------------------------------------------------------
Sub setNumberFormat(oDoc as object ,oCellrange As Object,sFormatString AS String)
Dim aLocale AS Object
dim nFormatKey As Long
aLocale = CreateUnoStruct("com.sun.star.lang.Locale")
with aLocale 
   .Language = "de"
   .Country = "DE"
End With
' den Nummern-Format key erhalten (oder einen neuen erZeugen, falls er noch nicht existiert.) 
nFormatKey = oDoc.NumberFormats.queryKey(sFormatString, aLocale, True)
If nFormatKey = - 1 Then 'not found
   'create a new key for this number format
   nFormatKey = oDoc.NumberFormats.addNew(sFormatString, aLocale)
End If
'die Zelle formatieren:
oCellrange.NumberFormat = nFormatKey
end sub
'----------------------------------
Gruß Frieder
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Datum als Datum einfügen, nicht als String

Beitrag von Stephan »

Was tun sprach Zeus?
.FormulaLocal verwenden:

Code: Alles auswählen

mysheet.getCellByPosition(0,0).FormulaLocal = FileDateTime ("C:\autoexec.bat")

Gruß
Stephan
Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Re: Datum als Datum einfügen, nicht als String

Beitrag von Reginald »

Hallo zusammen,

vielen Dank für die Antworten! Die Funktion DateValue funktioniert, gibt mir aber nicht die Uhrzeit mit an.

Am besten ist das hier von Stephan.

Code: Alles auswählen

mysheet.getCellByPosition(0,0).FormulaLocal = FileDateTime ("C:\autoexec.bat")
Danke!

Reginald
Antworten