Wie mit Python-Makro Zellwerte ersetzen (Bitte für ein Makro)

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

Moderator: Moderatoren

housefreund
******
Beiträge: 603
Registriert: Do, 03.01.2008 23:23

Wie mit Python-Makro Zellwerte ersetzen (Bitte für ein Makro)

Beitrag von housefreund »

Hallo zusammen,

ich würde gerne mit der Makro-Programmierung in Calc beginnen. Ich möchte das mittels Python machen.
Ich weiß, es gibt zig Tutorials und z. B. ein Handbuch dafür (zuletzt in 2015 aktualisiert), aber ich bin schon seit jeher jemand, der sich viel besser etwas aus Anwendungsfällen ziehen kann und diese nimmt. Ich brauche einen "realen" Anfangspunkt, von dem aus ich losgehen kann.

Daher meine Bitte an die (erfahrenen) Besucher des Threads, mir in Python ein Makro für die folgende Tätigkeiten zu schreiben:
Ich möchte in einer Datei in den Blättern 6 bis einschl. 25 in allen Zellen, die im Bereich $D$2:$F$2000 mit der Zellformat-Vorlage namens "Zahl-EUR" formatiert sind, den Wert 3123 einfügen. Das Gleiche möchte ich für Zellen, die mit der Vorlage namens "Text-links" und dem Ersetzen mit den Zeichen Wortwort machen.

Vielleicht wirkt das jetzt "etwas" überheblich ( :) ), es war mir aber eine ernste Anfrage wert. Ansonsten wäre ich auch über möglichst konkrete Hinweise und Tipps dankbar. :)
Zuletzt geändert von housefreund am Fr, 12.08.2016 20:49, insgesamt 1-mal geändert.
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Wie mit Python-Makro Zellwerte ersetzen (Bitte für ein Makro)

Beitrag von mikeleb »

Hallo,
als selbst Python-Anfänger würde ich es so machen:

Code: Alles auswählen

def zellwertsetzen():
    oDoc = XSCRIPTCONTEXT.getDocument()
    for i in range(5,25):    
        oSheet = oDoc.Sheets.getByIndex(i)
        for s in range(3,6):
            for z in range(1,2000):
                oCell = oSheet.getCellByPosition(s,z)
                if oCell.CellStyle=="Zahl-EUR":
                    oCell.Value=3123
                elif oCell.CellStyle=="Text-links":
                    oCell.Sring="wortwort"
Gruß,
mikeleb
Antworten