xubuntuのPythonマクロにScriptForgeを使う

ScriptForgeはLibreOfficeをプログラム的に操作することを目的としたモジュール作成のためにLibreOfficeから提供される膨大なライブラリー群である。Pythonマクロ作成にはその一部であるクラスCreateScriptServiceを使う。

ScripyForgeはLibreOfficeのインストールと一緒にインストールされるがxubuntuを含むubuntuではシステムワイドなパッケージとして別個にインストールする:

sudo apt install python3-scriptfoge

またこのクラスを継承した各種ドキュメント用、インタフェース用のクラスが用意されてる。これらの説明はここにある。

ここではスプレッドシートCalcをPythonマクロで操作するために必要なそのサブクラスを使う。

このサブクラスで使える様々のメソッドの説明はここにある。

例題は「今開いているシートのセルA!に書かれている数値を読み込み、それに書かれていた数値に1を加えた数値を再度セルA1に書く出す」というものである:

# coding: utf-8
from __future__ import unicode_literals
from scriptforge import CreateScriptService
doc = CreateScriptService("Calc")
def increment_cell(args=None):
    value = doc.GetValue("~.A1")
    print(type(value))
    value += 1
    doc.SetValue("~.A1", value)
g_exportedScripts = (increment_cell, )

GetValue、SetValueが使ったメソッドで、引数の中の~はCalcで今開いているシートを指す。最後の行はこのモジュールでマクロとして登録する関数名をタプルで並べる。ここの例ではincrement_cellがそれである。

ScriptForgeなしでもマクロは書けるが、これを使った方がプログラムはすっきりする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です