Home > コンピュータ > LibreOffice > マクロ > Python > ドキュメント > マクロ/Pythonの基礎

マクロ/Pythonの基礎

新規作成日 2022-03-18
最終更新日

翻訳元ページ「Macros/Python Basics」の最終更新日は、2021-10-13 19:11:32 です。

日本語ページは、「マクロ/Pythonの基本設定」です。


序文

Preamble

このページでは、統合開発環境(IDE)内で、LibreOffice Pythonマクロを開発するために効果的な手順を紹介します。構成や選択の設定では、無料やオープンソース(Foss)IDEの限られた設定を紹介します。LibreOffice内でのPythonマクロの直接編集とデバッグには、Alternative Python Script Organizer(APSO)拡張機能だけが必要です。この場合、チャプターの開始、接続、および停止のコンテンツは、スキップできます。

( ...文書、構成、オブジェクト検査...)

役に立つLibreOfficeパッケージ

IDEプロジェクトの設定

IDE Project Setup

それぞれのIDEは、異なる構成や設定を必要とします。

Geany

LibreofficeやOpenOfficeに埋め込まれたPythonインタプリタは、Geany Projects - Properties - Buildダイアログで明示的に定義する必要があります。:

MacOS - プロジェクト・プロパティ構築タブ。

MacOS - プロジェクト・プロパティ構築タブ。

GNU/Linux - プロジェクト・プロパティ構築タブ。

GNU/Linux - プロジェクト・プロパティ構築タブ。

Windows - プロジェクト・プロパティ構築タブ。

Windows - プロジェクト・プロパティ構築タブ。

値の例:

  • 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

Pyzo

組み込みPythonインタプリタのためのPyzo構成ダイアログシェル ― シェル構成を編集...メニュー として、:

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つの工程が必要になる場合があります。:

  1. サービスとしてLibreOfficeを開始します
  2. サービスに接続します
  3. XSCRIPTCONTEXTアダプタを作成します。
  4. マクロを実行します
  5. サービスとして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()オブジェクトに、開始、接続、適合、実行、停止のステップの役割を果たします。
  • 開始、接続、適合、実行、停止の手順をいつ実行するかを決定します。
このエントリーをはてなブックマークに追加