Verwenden Sie die LibreOffice-App in Python (2) Manipulieren Sie calc (von Makro und extern)

Lassen Sie uns zuerst calc bedienen.

Die Bedienung ist einfach, geben Sie einfach die Nummer in Zelle A1 ein. Ich versuche es mit ** Windows **.

Starten Sie zur Vorbereitung zunächst eine neue Berechnung.

Makro

Bitte setzen Sie das Python-Skript, das Folgendes geschrieben hat, an die Stelle Ihres eigenen Makros.

def a1():
  doc = XSCRIPTCONTEXT.getDocument()
  sheet = doc.getSheets().getByName('Sheet1')
  A1 = sheet.getCellRangeByName('A1')
  A1.Value = 100

Führen Sie Tools-> Makro-> Makros verwalten-> Python-> Anwendbares Skript-> a1 aus. Nach A1 Enthält 100.

** Von außen bedienen **

Da das Debuggen mit Makros schwierig ist, ermöglichen wir die Verwendung von Python-Skripten von außen. Derzeit kann Windows effektiv nur die Python verwenden, die mit LibreOffice geliefert wird. Die Situation scheint auf Mac und Ubuntu dieselbe zu sein. Mit anderen Worten, es ist ziemlich unpraktisch, weil Sie keine Module frei hinzufügen können **.

** (Vorbereitung) ** --python verwendet den LibreOffice-Anhang (steht nicht in Konflikt mit anderen Pythons)

(Anlaufen) Beginnen Sie mit einem Stapelbefehl (bitte benennen Sie ihn frei) mit den unten gezeigten Optionen. Beachten Sie, dass es zwei Zeilen gibt. Das DOS-Fenster bleibt geöffnet. Es ist besser, daraus einen Service zu machen, aber vorerst ist dies der richtige Weg. Klicken Sie nach dem Start ** einmal auf das Blatt. ** Die Ursache ist unbekannt, funktioniert jedoch nur, wenn Sie einmal darauf klicken.

"C:\Program Files (x86)\LibreOffice 5\program\soffice.exe" ^
--calc --norestore --accept=socket,host=localhost,port=8100;urp

Das Folgende ist dasselbe wie das Makro. Da es mit libreoffice geliefert wird, wird uno importiert Du solltest dazu fähig sein. Es wird davon ausgegangen, dass eine neue Berechnung geöffnet ist. Zugriff auf das aktuelle Dokument Das Folgende ist der gleiche Inhalt wie das Makro. Vorher gibt es noch einige Teile, die ich nicht verstehe. Führen Sie es mit dem Python-Skriptnamen aus (Sie können ihn auch gerne benennen).

# -*- coding: utf-8 -*-
import uno
localContext = uno.getComponentContext()
resolver = localContext.ServiceManager.createInstanceWithContext(
    "com.sun.star.bridge.UnoUrlResolver", localContext)
#connect to the running office
ctx = resolver.resolve( "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext" )
smgr = ctx.ServiceManager
# get the central desktop object
desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)

# access the current  document ( calc )
doc = desktop.getCurrentComponent()
sheet = doc.getSheets().getByName('Sheet1')
A1 = sheet.getCellRangeByName('A1')
A1.Value = 999

Entwicklung ist besser als Makros allein, da Makros und die Außenwelt jetzt dasselbe tun können. Obwohl es extern ist, ist es unpraktisch, weil Sie Pip oder Ipython nicht verwenden können, weil Sie (im Moment) den libreoffice-Anhang verwenden müssen.

Recommended Posts

Verwenden Sie die LibreOffice-App in Python (2) Manipulieren Sie calc (von Makro und extern)
Verwenden Sie die LibreOffice-App in Python (3) Bibliothek hinzufügen
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
Bearbeiten Sie Dateien und Ordner in Python
Verwenden Sie die Flickr-API von Python
Verwendung ist und == in Python
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
Stellen Sie von Python aus eine Verbindung zu postgreSQL her und verwenden Sie gespeicherte Prozeduren in einer Schleife.
Stellen Sie das in Python unter SQL Server erstellte Vorhersagemodell bereit und verwenden Sie es
Verwendung der C-Bibliothek in Python
Firebase: Verwenden Sie Cloud Firestore und Cloud Storage von Python
Verwenden Sie libsixel, um Sixel in Python auszugeben und das Matplotlib-Diagramm an das Terminal auszugeben.
Über den Unterschied zwischen "==" und "is" in Python
Laden Sie den Befehl von yml mit Python und führen Sie ihn aus
Verwenden Sie PIL in Python, um nur die gewünschten Daten aus Exif zu extrahieren
Verwenden Sie Python in Ihrer Umgebung von Win Automation
Verwenden Sie das nghttp2 Python-Modul von Homebrew aus pyenvs Python
Informationen zum Standort (Breiten- und Längengrad) erhalten Sie von der Adresse. Geocode in Python ~ Geocoder und Pydams ~
Ich habe die Geschwindigkeit der Referenz des Pythons in der Liste und die Referenz der Wörterbucheinbeziehung aus der In-Liste verglichen.
Erhalten Sie das Formular in Python und führen Sie verschiedene Aktionen aus
App-Entwicklung zum Twittern in Python aus Visual Studio 2017
Verstehen Sie die Exponentialverteilung sorgfältig und zeichnen Sie in Python
Zeichnen und verstehen Sie die multivariate Normalverteilung in Python
Ich wollte die Python-Bibliothek von MATLAB verwenden
Verwenden Sie CASA Toolkit in Ihrer eigenen Python-Umgebung
Suchen Sie den Teil 575 aus Wikipedia in Python
Verstehe die Poisson-Distribution sorgfältig und zeichne in Python
% Und str.format () in Python. Welches benutzt du?
Finden Sie die Hermite-Matrix und ihre eindeutigen Werte in Python
Verwenden wir die offenen Daten von "Mamebus" in Python
Verwendung des in Lobe in Python erlernten Modells
Verwenden Sie config.ini mit Python
Verwenden Sie Datumsangaben in Python
Verwenden Sie Valgrind mit Python
Verwenden Sie MySQL aus Python
Verwenden Sie MySQL aus Python
Manipuliere Riak aus Python
Verwenden Sie BigQuery aus Python.
Verwenden Sie mecab-ipadic-neologd von Python
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
26.12.2015 python2> datetime> Implementierung, um die Differenz in Sekunden von zwei datetime-Zeichenfolgen im ISO-Format zu ermitteln> Use .seconds ()
[Python] Wenn Sie Ihr eigenes Paket im oberen Verzeichnis importieren und verwenden möchten
Setzen Sie Ubuntu in Raspi ein, setzen Sie Docker darauf und steuern Sie GPIO mit Python aus dem Container
Verwendung der Methode __call__ in der Python-Klasse
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
In Python werden die Elemente in der Liste sortiert und als Elemente und Vielfache ausgegeben.
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
Rufen Sie den Wert ab, während Sie den Standardwert aus dict in Python angeben
[Python] Ich habe das Spiel von pip installiert und versucht zu spielen
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie das Messprotokoll mit Python
Betreiben Sie LibreOffice mit Python
Verwenden Sie die Rückruffunktion in Python