翻訳元ページ「Macros/Python Basics」の最終更新日は、2021-10-13 19:11:32 です。
日本語ページは、「マクロ/Pythonの基本設定」です。
序文
Preamble
このページでは、統合開発環境(IDE)内で、LibreOffice Pythonマクロを開発するために効果的な手順を紹介します。構成や選択の設定では、無料やオープンソース(Foss)IDEの限られた設定を紹介します。LibreOffice内でのPythonマクロの直接編集とデバッグには、Alternative Python Script Organizer(APSO)拡張機能だけが必要です。この場合、チャプターの開始、接続、および停止のコンテンツは、スキップできます。
( ...文書、構成、オブジェクト検査...)
役に立つLibreOfficeパッケージ
- LibreOffice 7.x
- LibreOffice Portable 6.x, winPenPack LibreOffice 6.x
- AppImage、Flatpak、Snap Linuxイメージが、利用できます。
相互互換性を検討したい場合:
IDEプロジェクトの設定
IDE Project Setup
それぞれのIDEは、異なる構成や設定を必要とします。
Geany
LibreofficeやOpenOfficeに埋め込まれたPythonインタプリタは、Geany Projects - Properties - Buildダイアログで明示的に定義する必要があります。:
値の例:
- MacOS
- P1. Compile = /Applications/LibreOffice.app/Contents/Resources/python -m py_compile "%f"
- E1. Execute = /Applications/LibreOffice.app/Contents/Resources/python "%f"
- Linux
- P1. Compile = opt/openoffice4/program/python -m py_compile "%f"
- E1. Execute = opt/openoffice4/program/python "%f"
- Windows
- Pythonコマンド
- 1. Compile = "D:\Program Files\LibreOffice 5\program\python" -m py_compile "%f"
- 2. Interpret = "D:\Program Files\LibreOffice 5\program\python"
- コマンドを実行する
- 1. Execute = "D:\Program Files\LibreOffice 5\program\python" "%f"
- 2. Unit Tests = "D:\Program Files\LibreOffice 5\program\python" -m unittest discover
- Pythonコマンド
Pyzo
組み込みPythonインタプリタのためのPyzo構成ダイアログシェル ― シェル構成を編集...メニュー として、:
PyCharm
PyCharmデフォルト設定ダイアログを持つLibreOffice Pythonインタプリタ構成:
マクロとは
What's in a Macro
LibreOffice Pythonマクロは、次のようになります。:
import uno
def my_1st_macro():
# Won't run directly in Anaconda, Geany, KDevelop, PyCharm or else
# Anaconda、Geany、KDevelop、PyCharmなどで、直接実行できません
doc = XSCRIPTCONTEXT.getDocument()
doc.getText().setString("Hello World!")
g_exportedScripts = my_1st_macro,
上記を実行するには、IDEとLibreOfficeをブリッジする必要があります。一旦、実行すると、UNOオブジェクトは、アクセスできるようになります。
これを実現するには、最大5つの工程が必要になる場合があります。:
- サービスとしてLibreOfficeを開始します
- サービスに接続します
- XSCRIPTCONTEXTアダプタを作成します。
- マクロを実行します
- サービスとしてLibreOfficeを停止します
インターネットで入手できる例は、これらすべての手順を用いているわけではありませんが、それらの研究は、IDE_utilsモジュールは、無害にIDEに統合するために借用するコーディング・ガイドラインを示しています。
開始、接続、適合、実行、停止
Start, Connect, Adapt, Run & Stop
下の表は、いくつかの公開されている(Libre/Open)OfficeのPythonマクロのを一覧にします。開始、接続、適合、実行、停止の各ステップの使用法が示されています。
説明 | 開始 | 接続 | 適合 |
実行 デバッグ |
停止 |
---|---|---|---|---|---|
a.LibreOfficeとOpenOffice officehelper.pyモジュール | x | x | |||
b. Office.bridge.py XSCRIPTCONTEXTIDEを持つIDEのためのブリッジの再検討 2017年2月(フランス語) | x | x | x | ||
c. OpenOffice / LibreOfficeでのインターフェース指向プログラミング:Pythonマクロを使用してオフィス作業を自動化します。2013年9月 | x | x | |||
d. unopy.py LibreOfficeマクロは、PyCharmにより実行します。2014年1月(日本語) | x | x | x | ||
e. ooutils.py- Pythonを使用したOpenOfficeの起動、停止、接続、2008年12月 | x | x | x | x | |
f. Python UNOブリッジ、2008年10月 | x |
IDEの有効化
IDE enablement
これらのリソースに基づいて、IDEでのPythonマクロの有効化の要件は次のように要約できます。:
- 開始、接続、適合、実行、停止の手順は、オプションです
- 複数のプラットフォームのサポート、つまり基本的にLinux、MacOS、Windows
- オンデマンドスタートアップ--options
- パイプおよび/またはソケット接続を許可する
- インジェクションを使用した分離コーディング
- サービス・プーリング、コンテキスト・プーリングを提供する
- そして、Kiss
IDE_utilsモジュールの提案:Runner()コンテキスト・マネージャー・クラスは、sofficeインスタンスの開始と停止の役割を果たします。オプションのRunners.json構成ファイルには、開始するサービスとその実行条件を保持するservice-optionsペアが含まれています。connect()関数は、実際のIDEとLibreOfficeインスタンスをブリッジします。ScriptContext()オブジェクトは、組み込みXSCRIPTCONTEXTとして、注入します。start()とstop()コーディング機能は、Runner()機能をまとめたものです。スケルトン・モジュールは、次のようになります。:
#! # IDE_utils.py
import officehelper
RUNNERS = 'Runners.json'
class Runner(soffice=None): pass
class ScriptContext(): pass
_ctx = officehelper.bootstrap()
XSCRIPTCONTEXT = ScriptContext(_ctx)
def connect(host='localhost', port=2002, pipe=None): pass
def start(soffice=None): pass
def _stop(): pass
IDE_utils.pyは、GitLabから入手できます。
import uno
def my_1st_macro(): pass # Your code goes here
g_exportedScripts = my_1st_macro, # Published macros
# あなたのコードは、ここに行きます
if __name__ == '__main__':
from IDE_utils import Runner, XSCRIPTCONTEXT
with Runner() as jesse_owens: # Start/Stop, Connect/Adapt
# 公開されたマクロ 開始/停止、接続/適合
my_1st_macro # Run
上記の例は、IDE_utilsの推奨される使用法です。サービスの開始と停止は、すべての状況に適合するとは限らないため、これらの工程は、オプションです。その同じモジュールにより、LibreOffice(またはOpenOffice)サービスの実行条件をカスタマイズできます。"Getting Started" ユーザー・ガイドには、IDE_utilsを使用する3つの異なる方法の詳細な説明が記載されています。:
- (Libre/Open)OfficeのデフォルトのPythonのbootstrap()メカニズムに頼る
- Runner()とScriptContext()オブジェクトに、開始、接続、適合、実行、停止のステップの役割を果たします。
- 開始、接続、適合、実行、停止の手順をいつ実行するかを決定します。