linuxBean14.04(151)LibreOfficeマクロ開発環境の構築:その2

2017-03-18

旧ブログ

t f B! P L
Eclipseプロジェクト内で作成したPythonマクロがオートメーションでも動くことを確認します。

前の関連記事:linuxBean14.04(150)AnacondaとJupyter NotebookとLibreOffice5.2(失敗編)


EclipseでCalcのPythonマクロを作成してCalcから実行する


Calc(1)課題1:LibreOffice CalcのPythonマクロを動かすのcalc_overviewにすることにします。

PyDev PackageビューのCalcEmbeddedプロジェクト内にあるsrcフォルダを右クリック→New→File。

File nameをcalc_overview.pyにしてFinish。

linuxBean14.04(134)Eclipse4.6とLibreOffice5.2のPythonマクロのときと同様にDefault Eclipse preferences for PyDevというダイアログがでてきますが、そのままOKをクリックします。

Calc(1)課題1:LibreOffice CalcのPythonマクロを動かすのcalc_overview.pyのコードを新しく作成したpyファイルにペーストして保存します。

Calcを起動してツール→マクロ→マクロの管理→Python。


マイマクロ→CalcEmbedded→CalcEmbedded→src→calc_overview→calc_overview、を選択して「実行」をクリックするとマクロが実行できました。

linuxBean14.04(140)LibreOfficeのマイマクロフォルダをEclipse4.6のworkspaceにするの「EclipseからオートメーションできるようにPYTHONPATHを設定する」の通り~/.config/libreoffice/4/user/Scripts/pythonをLibrariesに追加するとオートメーションができました。

マクロを埋め込むCalcファイルをEclipseプロジェクト内に配置する



CalcのファイルをCalcEmbeddedプロジェクトフォルダの直下に配置しました。

このodsファイルにsrcフォルダ以下のPythonマクロファイルを埋め込むことにします。

LibreOffice(31)Pythonマクロをドキュメントファイルに埋め込む

odsファイルにPythonマクロを埋め込む方法はこの記事の通りですが、手間なので簡単にできる方法を考えます。

Pythonマクロ用のTemplateを作成する


Pythonマクロの常套句はEclipseのテンプレート機能を使って自動入力することにします。

Window→Preferences。

PyDev→Editor→Templates。

Newボタンをクリック。


NameはLibreOffice、ContextはNew Module、DescriptionはPython Macro for LibreOfficeにしました。

Pattternには以下のコードを入れました。
#!/opt/libreoffice5.2/program/python
# -*- coding: utf-8 -*-
def macro():
    pass${cursor}
    
    
if __name__ == "__main__":
    import sys
    import unopy
    XSCRIPTCONTEXT = unopy.connect()
    if not XSCRIPTCONTEXT:
        print("Failed to connect.")
        sys.exit(0)
    sys.exit(macro())
1行目のshebangは必要なものではありませんが、どのインタープリターで開発したものかわかるように挿入しておきます。

これでOKしてパネルを閉じます。

PyDev Package ExplorerでPyDevプロジェクトを右クリック→New→PyDev Module。


Nameに新しいpyファイル名を拡張子付けずに入力してFinish。


Template選択ダイアログが出てくるので先ほど作成したLibreOfficeのテンプレートを選択してOK。

これでTemplateのコードが自動入力されます。

 ${cursor}でカーソルの位置も指定したのですがこれはうまく動作しませんでした。

次の関連記事:linuxBean14.04(152)AnacondaとJupyter NotebookとLibreOffice5.2(成功編)

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ