Seite 1 von 1

Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 10:35
von bastel
Hallo,
hat jemand eine Idee wie man das am einfachsten hinbekommt?
Ich hab folgendes durch die Makroaufzeichnung gefunden:
dispatcher.executeDispatch(oColumn, ".uno:ChangeCaseToTitleCase", "", 0, Array())
leider kann man da keine Spalten übergeben.
Dann gebe es noch die Funktion "Proper" die aber nur Strings bzw. Arrays als Parameter annimmt.



Danke im Voraus
Gruß Bastel

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 11:30
von karolus
Hallo
selektiere die Spalte und →→Format→→Text→→Jedes Wort gross Schreiben

oder per shortcut <alt>F … j
und schon wieder etwas makro-code eingespart!!

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 11:43
von bastel
Hallo Karolus,
danke, aber kenne ich schon.
Ich brauche das per makro weil ich dass in sehr vielen Dokumenten in verschiedenen Spalten machen muß.
Und das von "Hand" kein Spass macht.

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 13:00
von karolus
Na dann:

Code: Alles auswählen

def one_doc_example():
    doc = XSCRIPTCONTEXT.getDocument() 
    columns = doc.Sheets[0].Columns #erstes Tabellenblatt spalten-"Container"
    for char in "ACFH7": #Spalte A C F H…
        if char.isdecimal():
            char = int(char) # …oder per index 7
        target = columns[char].queryContentCells(4) #4→Text #+16→auch Formelzellen
        for single_range in target:
            data = single_range.DataArray
            out = []
            for row in data:
                out.append([entry.title() for entry in row])
            single_range.DataArray = out

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 13:09
von bastel
Hi Karolus,
sorry blöde Frage:
ich arbeite mit WIndows Libre Office 7.4
Welche Makrosprache ist das?
In Basic und Javascript bekomme ich es nicht zum laufen :oops:

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 13:20
von karolus
Das ist python

und mit apso.oxt hast du schonmal ne Basis zu organisieren etc.

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 13:45
von bastel
:D Works like Charm
Danke !!!

Re: Spalte via Makro Text jedes Wort erster Buchstabe groß einstellen

Verfasst: Do 27. Okt 2022, 17:08
von karolus
Hallo
das Beispiel oben ist ein wenig "quick & dirty" , so kannst du natürlich nur auf die Spalten A bis Z zugreifen, oder per index auf 0 bis 9.

Hier ein paar Beispiele:

Code: Alles auswählen

doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets.Tabelle1 #Objektzugriff geht nur bei Tabellennamen ohne Leerzeichen
sheet = doc.Sheets["Tabelle1"] # Zugriff über den Namen
sheet = doc.Sheets[0] #Indexzugriff erste Tabelle
sheet = doc.Sheets[-1] #indexzugriff letzte Tabelle
sheets = doc.Sheets[:2] # slice auf die erste und zweite Tabelle

cellrange = sheet[: , 2:5] # Zellbereich auf alle Zeilen von Spalte C bis Spalte E
cellrange = sheet["A3:F42"] # der "gängige" Zugriff per Bereichsadresse