前の関連記事: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}でカーソルの位置も指定したのですがこれはうまく動作しませんでした。
0 件のコメント:
コメントを投稿