Calc- CellContentType für Datum??

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

Moderator: Moderatoren

dherr
*
Beiträge: 17
Registriert: Mi, 23.01.2008 17:02

Calc- CellContentType für Datum??

Beitrag von dherr »

Hallo,

leider gibts wohl nicht den Celltyp für Datum-Werte in OO-Basic. Wenn ich aber Zellinhalte aus Calc in bspw. anderes Programm übernehmen will, kann ich nicht feststellen, ob der Inhalt der Zelle ein datum ist.
Datumswerte werden als Zahl übergeben, also als Long. Alle anderen Zahlen werden naturgemäß als Zahlenwerte übergeben.
Ich sehe aber momentan keine Möglichkeit, programmatisch zu erkennen, ob ein Datumswert vorliegt.

Oder weiß jemand nen Trick??

Gruß-
Dietrich
Dietrich
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Calc- CellContentType für Datum??

Beitrag von turtle47 »

Hi Dietrich,

Wenn Du weist in welchen Format das Datum vorliegt kannst Du es wie folgt prüfen:

Code: Alles auswählen

Sub AufDatumPruefen
	myDoc = thisComponent
	mySheet = myDoc.sheets(0) 'erstes Tabellenblatt
	mycell1 = mysheet.getCellByPosition(0,0)'Zelle A1
	myvalue1 = mycell1.value
	'oZell.NumberFormat = 30 'Format 13.05.06
    'oZell.NumberFormat = 31 'Format Sa 13.Mai 06
    'oZell.NumberFormat = 32 'Format 05.06
    'oZell.NumberFormat = 33 'Format 13.Mai
    'oZell.NumberFormat = 34 'Format Mai
    'oZell.NumberFormat = 35 'Format 2. Quartal 06
    'oZell.NumberFormat = 36  'Format 13.05.2006
    'oZell.NumberFormat = 38 'Format Samstag, 13. Mai 2006
    'oZell.NumberFormat = 39 'Format 13. Mai 06
	If myCell1.type = 2 then 'Prüft auf String
	msgbox "Kein Datum vorhanden"
	'Prüfen der Zelle auf Datumformat 1.02.2008
	elseif myCell1.NumberFormat = 36 then 
	msgbox "Die Zelle enthält ein Datum"
	end if
End Sub
Mehr zu

Code: Alles auswählen

myCell1.type = 2 then 'Prüft auf String
findest Du hier.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
dherr
*
Beiträge: 17
Registriert: Mi, 23.01.2008 17:02

Re: Calc- CellContentType für Datum??

Beitrag von dherr »

Danke turtle47!

Das ists.
Nur noch eine Frage:
Ich habe selbst natürlich intensiv gesucht nach Lösung. Allerdings bin ich OO Neuling und es ist bisschen mühsam als Autodidakt ;-)
Wo kann man gerade solche Eigenschaftswerte nachlesen? Hast du evtl. nen Link parat...

Gruß aus Salzburg
Dietrich
Dietrich
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Calc- CellContentType für Datum??

Beitrag von turtle47 »

Hallo Dietrich,
dherr hat geschrieben:Danke turtle47!
Gerne geschehen :lol:. Ich lerne dabei auch immer noch dazu.
dherr hat geschrieben:Ich habe selbst natürlich intensiv gesucht nach Lösung.
Das glaube ich Dir.
dherr hat geschrieben:Allerdings bin ich OO Neuling und es ist bisschen mühsam als Autodidakt ;-)
Das geht mir genau so.
dherr hat geschrieben:Wo kann man gerade solche Eigenschaftswerte nachlesen? Hast du evtl. nen Link parat...
Kann ich Dir leider auch nicht sagen. Aber: "Versuch macht kluch*"

Nach lesen Deiner Frage habe ich mal in meiner Makro-Grabbelkiste nachgesehen und folgende Function gefunden:

Code: Alles auswählen

function Datum()
   oZell = thisComponent.getcurrentSelection()
   if not oZell.supportsService("com.sun.star.sheet.SheetCell") then
       msgbox "Bitte nur eine Zelle auswählen", 48, "Fehler!"
       exit function
   end if
   oZell.value = now()
    'oZell.NumberFormat = 30 'Format 13.05.06
    'oZell.NumberFormat = 31 'Format Sa 13.Mai 06
    'oZell.NumberFormat = 32 'Format 05.06
    'oZell.NumberFormat = 33 'Format 13.Mai
    'oZell.NumberFormat = 34 'Format Mai
    'oZell.NumberFormat = 35 'Format 2. Quartal 06
    oZell.NumberFormat = 36 'Format 13.05.2006
    'oZell.NumberFormat = 38 'Format Samstag, 13. Mai 2006
    'oZell.NumberFormat = 39 'Format 13. Mai 06
end function
Also habe ich mir gedacht, wenn man das Format über einen Zahlencode vorgeben kann, dann müsste man ja eigentlich
über den Zahlencode prüfen können ob ein Datum vorhanden ist. 8)

Es hat jetzt nichts damit zu tun, aber wenn Du mehr über die Methoden und Eigenschaften von Objecten erfahren möchtest, kann ich Dir das Tool "Xray" für OO.o Basic nur wärmsten empfehlen. Gib einfach mal Xray in die Suchfunktion hier im Forum ein.
dherr hat geschrieben:Gruß aus Salzburg
Schöne Stadt.

Ich wünsche Dir ein schönes Wochenende aus dem Rheinland.

Jürgen

*Ich weis, es heißt klug, aber es reimt sich so schlecht.
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Calc- CellContentType für Datum??

Beitrag von komma4 »

turtle47 hat geschrieben:
dherr hat geschrieben:Wo kann man gerade solche Eigenschaftswerte nachlesen? Hast du evtl. nen Link parat...
Kann ich Dir leider auch nicht sagen. Aber: "Versuch macht kluch*"
So etwas steht in der Doumentation.
Genauer: SDK vom Projekt laden und installieren.

Lest ihr dann das Kapitel über Zahlenformate [Kap. 7.2.5] kommt ihr auf die Aufstellung der Konstanten com.sun.star.util.NumberFormat.

Wolltet ihr das auch wissen?
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)
Antworten