❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Textfeld mit Python auslesen

Alles zur Programmierung im LibreOffice.
StefKe
Beiträge: 68
Registriert: Sa 5. Nov 2022, 18:47

Textfeld mit Python auslesen

Beitrag von StefKe » Mi 26. Jun 2024, 00:11

Oh, dank alle Helfer :-) gleich vorab...
Ich möchte in Calc ein Textfeld auslesen:

Code: Alles auswählen

def read_textfield():    
    oDoc = XSCRIPTCONTEXT.getDocument()
    oController = oDoc.getCurrentController()
    oSheet = oDoc.Sheets[0]
    oForm = oSheet.forms.getByIndex(0)
    oNumField1 = oForm.getByName("Textfeld 1")
    oView = oController.getControl(oNumField1)
    nValue = oView.Model.string
    print(nValue)
in BASIC läuft der Code, in Python wird in Zeile 5 gemeckert.
AttributError: forms
Wie muss die Zeile richtig lauten?

Danke
Stefan

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2580
Registriert: Fr 10. Dez 2010, 10:01

Re: Textfeld mit Python auslesen

Beitrag von karolus » Mi 26. Jun 2024, 09:32

python möchte die Attribute gerne in der richtigen Schreibweise: also nicht (…forms, fORMS, FORMS, … ) sondern einfach nur …Forms oder via Method …getForms() und wichtig bei Methodenaufrufen sind die Klammern dahinter, ohne die wird die ganze Methode nur an das Symbol vor dem Gleichheitszeichen geklebt
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

StefKe
Beiträge: 68
Registriert: Sa 5. Nov 2022, 18:47

Re: Textfeld mit Python auslesen

Beitrag von StefKe » Mi 26. Jun 2024, 12:03

Danke, aber in Zeile 5, bzw. Zeile 6 wird noch immer die Fehlermeldung erzeugt:

Code: Alles auswählen

def read_textfield():    
    oDoc = XSCRIPTCONTEXT.getDocument()
    oController = oDoc.getCurrentController()
    oSheet = oDoc.Sheets[0]
    oForm = oSheet.Forms.getByIndex(0) # AttributError: Forms
    # oForm = oSheet.getForms() # AttributError: getForms
    oNumField1 = oForm.getByName("Textfeld 1")
    oView = oController.getControl(oNumField1)
    nValue = oView.Model.string
    print(nValue)
So ein bisschen fehlt mir die Autovervollständigung. Wenn mit

Code: Alles auswählen

 oDoc = XSCRIPTCONTEXT.getDocument()
ein Objekt erzeugt wird, sollte doch ab:

Code: Alles auswählen

oController = oDoc.
alle verfügbaren Methoden und Attribute angezeigt werden? Tut es aber nicht? Ist das normal, oder kann das behoben werden?
Oder anders herum: Wie oder wo sind die verfügbaren Objektmethoden einzusehen?

Tut mir leide wenn ich mit den Fragen nerve, aber wer nicht fragt....
Und danke für die Hilfe :-)
Stefan

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2580
Registriert: Fr 10. Dez 2010, 10:01

Re: Textfeld mit Python auslesen

Beitrag von karolus » Mi 26. Jun 2024, 15:51

Danke, aber in Zeile 5, bzw. Zeile 6 wird noch immer die Fehlermeldung erzeugt:
Entschuldige, hab ich übersehen, da liegt ja immer noch die Drawpage dazwischen (übrigens auch in Basic 8-) ):

Code: Alles auswählen

doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0]
form = sheet.DrawPage.Forms[0]
print( form.ElementNames )
field = form["Textfeld 1" ]
print(field.String)
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2580
Registriert: Fr 10. Dez 2010, 10:01

Re: Textfeld mit Python auslesen

Beitrag von karolus » Mi 26. Jun 2024, 16:10

Hallo
Oder anders herum: Wie oder wo sind die verfügbaren Objektmethoden einzusehen?
Zum einen gibts dafür nicht erst seit gestern …

und eine grosse Teilmenge der Informationen aus MRI gibts auch per Codevervollständigung:
aus einer interaktiven jupyter-notebook instanz

Für letzteres brauchts vmtl. ein wenig »Vorbereitung« bei Interesse einfach nochmal nachfragen!
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

StefKe
Beiträge: 68
Registriert: Sa 5. Nov 2022, 18:47

Re: Textfeld mit Python auslesen

Beitrag von StefKe » Mi 26. Jun 2024, 16:39

Hallo, danke für den Code - läuft:-).
Mit der MRI-Erweiterung muss ich mich noch vertraut machen....
Stefan

StefKe
Beiträge: 68
Registriert: Sa 5. Nov 2022, 18:47

Re: Textfeld mit Python auslesen

Beitrag von StefKe » Do 27. Jun 2024, 12:40

Hallo, die MRI-Tools sind schon geil :-), aber: alle Menuelinks sind deaktivert, ein Zugriff auf die IDL-Ref. ist nich möglich..

Bild

auf der Suche nach einer Lösung fand ich diesen Thread
mit einem Hinweis auf das XRAY-Tool, aber auch dieser Hinweis führt ins Leere.
Gibt es dafür eine Lösung, oder einfach so belassen?
Danke - Stefan

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2580
Registriert: Fr 10. Dez 2010, 10:01

Re: Textfeld mit Python auslesen

Beitrag von karolus » Do 27. Jun 2024, 14:50

Da steht doch was du tun sollst!

⇒Tools⇒Configuration⇒ dein Pfad zu deinem Browser
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

StefKe
Beiträge: 68
Registriert: Sa 5. Nov 2022, 18:47

Re: Textfeld mit Python auslesen

Beitrag von StefKe » Do 27. Jun 2024, 18:44

Nu, leider ist unter Tools ->Configuration nix erreichbar.
siehe Screener - ich hoffe er funzt:
Bild

ich hab nebenbei OpenOffice installiert. Da funzt es perfekt. Sollte ich besser AOO nutzen?

Danke - Stefan

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2580
Registriert: Fr 10. Dez 2010, 10:01

Re: Textfeld mit Python auslesen

Beitrag von karolus » Do 27. Jun 2024, 19:03

ich hab nebenbei OpenOffice installiert. Da funzt es perfekt. Sollte ich besser AOO nutzen?
Nein – besser nicht AOO wurschtelt immer noch mit python2 rum obwohl die aktive Weiterentwicklung des 2-zweiges gegen 2020 ausgelaufen ist ( und zwar mit dedizierter Ansage schon 10 bis 12 Jahre vorher !!! )

welches OS benutzt du, und welche LO-version ?
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten