Formatierte Suche in Calc

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

Moderator: Moderatoren

Benutzeravatar
womolbo
**
Beiträge: 26
Registriert: So, 12.04.2020 12:43

Formatierte Suche in Calc

Beitrag von womolbo »

Hallo Fachleute,
ich komme einfach nicht drauf wo der 'Fehler' im folgenden Code ist :-x.
Ziel ist die Suche nach einem String der nur in der formatierten Anzeige der Zelle zu finden ist.
Ich gehe davon aus dass dafür die Eigenschaft .SearchStyles zuständig sein sollte.

In der Zelle steht z.Bsp. "01.01.2020", das Anzeigeformat ist MMMM JJJJ, also "Januar 2020"
und ich möchte nach "Januar" suchen.

Code: Alles auswählen

Sub FormatierteSuche()
oSheet=ThisComponent.Sheets().GetByName("Kalender")
'oSheet = ThisComponent.CurrentController.getActiveSheet()
oSearchDescriptor=oSheet.createSearchDescriptor

oSearchDescriptor.SearchType=0
oSearchDescriptor.SearchStyles=true			'Ich nahm an dies ist das entscheidende Flag
'oSearchDescriptor.SearchString = "01.01.2020"		'Tut [mit SearchStyles=false, unabhängig vom SearchType]
oSearchDescriptor.SearchString = "Januar"		'Tut bisher nicht
oFound = oSheet.FindFirst(oSearchDescriptor)

Print isNull(oFound)
End Sub
In der manuellen Suche gelingt das einwandfrei und mit darauf basierendem Dispatchercode auch.
Aber dieser Basic/UNO-Code findet die Zelle nicht und ich komme einfach nicht drauf woran es liegt.

Kontext: LibreOffice Portable [Version: 6.3.5.2 (x86)], Win7 und miese Laune weil ich es nicht zum Laufen bringe

Kann jemand helfen? Ich würde mich freuen.

Vielen Dank und gute Zeit
Gruß V
LibreOffice Portable 6.3.5.2 (x86), Windows 7
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Formatierte Suche in Calc

Beitrag von Hiker »

Hallo,

helfen kann ich Dir nicht, aber
für mich klingt Style hier falsch und nach
http://www.openoffice.org/api/docs/comm ... iptor.html
kann man mit .searchstyles nach der Benutzung eines Formats wie Bild oder Überschrift1 suchen.

Bei Dir kommt dazu, dass in der Zelle ja eine Zahl steht, Januar aber nur in der formatierten Textdarstellung vorkommt.
Eigentlich würde man nach >=1.1.20 und <=31.1.20 suchen.

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Antworten