🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ 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. 🤗

absolute Newbie: Calc von python 2.7 console steuern irgendwie?

Alles zur Programmierung im LibreOffice.
Antworten
tusmani
Beiträge: 6
Registriert: Fr 11. Jul 2014, 15:18

absolute Newbie: Calc von python 2.7 console steuern irgendwie?

Beitrag von tusmani » So 6. Dez 2015, 05:55

Hi,
in meinem Lieblingsprogramm ist die Tabellenkalkulation ausgefallen. :cry: :cry: :cry:
Und bis zum Bug fix dauerts, -wer weiß wie lange. Es hat eine Python Console embedded 2.7 und dort läuft mein Anwenderprogramm, an dem ich gerade schraube. Und ja jetzt war die Überlegung, ersatzweise die Daten nach .csv zu exportieren, Libreoffice Ubuntu 14.04 aufzurufen und über eine Programmiersprache zu steuern. (Frage welche? in welcher "I-D-E"?)
-Also ich habe mal die Tutorials zu python-LO von google auf meiner 2.7 python console angetestet: die gaben alle Fehlermeldungen? z.B. sowas hier.
-Hier im Forum habe ich auch gelesen: Es ist die Rede von Python und einer anderen nicht benannten (Macro oder so?)
Jetzt ist nicht klar, wo der Code eingegeben werden muss (D.h. wie ihr das macht). Ein nicht kleines Problem ist auch die Installationskonfiguration, oder?

Also konkret geht es um einfache, grundsätzliche erste Schritte (in LO-Python oder sonst LO-Macro):
-Öffene ein Libreoffice calc fenster,
-lade eine csv Datei,
-positioniere das Fenster in bestimmter Größe,
-speichere auf Signal
-lade erneut (aktualisiere),
-ein paar andere Feature: wie Zelle färben nicht schlecht, aber kann auch warten..
-ach ja bitte nicht anhalten und den User irgendetwas fragen ;)

Hat jemand ne Ahnung ob das zu realisieren ist?
-Wenn ja wie (schwer)?
-Wenn es nicht schwer ist, wäre ich für ein paar Zeilen auch dankbar.
-Python 2.7 ist wohl nicht möglich, oder? Und nun, welche Installationkonfiguration wählen.
Danke für alle Ideen. (Finde es auch toll, dass es ein solches Programmier-LO-Forum für dt. gibt, für andere Sprachen gibt z.B. Englisch gibts das wohl nicht, oder?)

Also wie gesagt: Danke im Voraus.

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

Re: absolute Newbie: Calc von python 2.7 console steuern irgendwie?

Beitrag von karolus » So 6. Dez 2015, 13:02

Hallo

Ich kann und will hier nicht auf sämtliche Wissensdefizite eingehen (weil ich keine Romane schreiben mag)

Ich gehe davon aus:
Du weisst was ein|e (Kommandozeile, Shell, Teminal) ist, und kannst das benutzen
Du benutzt ein Ubuntu mit einem LibreOffice aus den Ubuntu-repositories ?!
Du hast neben Python2.7.x auch noch Python3.4 auf dem System?
( LibreOffice benutzt dann Python3.4 deines Systems, und alles weitere sollte sich recht einfach einrichten lassen )

→→
1. Suche und Installiere über deine Ubuntu-paket-verwaltung ipython3-notebook und dann auch gleich noch libreoffice-script-provider-python
2. starte ein Terminal

Code: Alles auswählen

mkdir neues_verzeichnis
cd neues_verzeichnis
ipython3 notebook
3. Rufe aus deinem Browser(Firefox oder dergleichen) die Addresse http://localhost:8888/tree auf, und klicke auf die Schaltfläche New Notebook

4. copy & paste in die erste ```Zelle```***:

Code: Alles auswählen

from subprocess import Popen

officepath = 'soffice'
calc = '--calc'
pipe = "--accept=pipe,name=abraxas;urp;StarOffice.Servicemanager"

Popen([officepath,
       calc,
       pipe]);
 
"führe den code aus" per 'Strg+enter'

( jetzt sollte Libreofffice starten mit einem neuen Calc-dokument )

Copy & paste in die nächste ```Zelle```***:

Code: Alles auswählen

import uno
from pythonscript import ScriptContext

local = uno.getComponentContext()
resolver = local.ServiceManager.createInstance("com.sun.star.bridge.UnoUrlResolver")

client = resolver.resolve("uno:pipe,"
                           "name=abraxas;"
                           "urp;"
                           "StarOffice.ComponentContext")
createUnoService = client.ServiceManager.createInstance

desktop = createUnoService( "com.sun.star.frame.Desktop" )

#mri = createUnoService( "mytools.Mri" )


XSCRIPTCONTEXT = ScriptContext(client, None, None)
 
du siehst die noch auskommentierte Zeile mit "Mri" ? → hol dir die Extension mri installiere per LO-Menü→Extras→Extensionmanager...

Soweit sollte das fürs erste genügen, bei weiteren Fragen.... einfach fragen!


***mit 'Zelle' ist hier 'eine Eingabezelle' im notebook gemeint und sollte nicht mit der 'Zelle' eines CalcDokuments verwechselt werden
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 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