Пример #1
0
def set_dlg_text(dlg):
    """
    ダイアログにアクティブセルのテキストを表示
    """
    text = dlg.Controls('TextField1')
    doc = CreateScriptService("SFDocuments.Calc")
    cell = calc.get_active_cell()
    if cell:
        text.Value = doc.GetValue(cell.AbsoluteName)
Пример #2
0
def set_cell_text(dlg):
    """
    アクティブセルのテキストを設定
    """
    text = dlg.Controls('TextField1')
    doc = CreateScriptService("SFDocuments.Calc")
    cell = calc.get_active_cell()
    if cell:
        doc.SetValue(cell.AbsoluteName, text.Value)
Пример #3
0
def exec_dialog(*event: uno):
    """
    event
        LOのメニュー「ツール」→「マクロ」→「マクロを実行」でこの関数を実行する場合、引数なしで呼ばれる。コントロールのイベントで呼ばれる場合、event引数が入る。event引数は使用していない。なので可変長変数にしている。
    """
    dlg = CreateScriptService('SFDialogs.Dialog', 'GlobalScope', "Standard",
                              "editcell_python")
    set_dlg_text(dlg)
    rc = dlg.Execute()
    if rc == dlg.OKBUTTON:
        set_cell_text(dlg)
    dlg.Terminate()
Пример #4
0
def down(event: uno):
    """↓ボタン"""
    button = CreateScriptService('SFDialogs.DialogEvent', event)
    set_cell_text(button.Parent)
    if calc.activate_cell_offset(0, 1):
        set_dlg_text(button.Parent)
Пример #5
0
def update(event: uno):
    """セルに書き込む"""
    button = CreateScriptService('SFDialogs.DialogEvent', event)
    set_cell_text(button.Parent)
Пример #6
0
def refresh(event: uno):
    """
    ダイアログにアクティブセルのテキストを再表示
    """
    button = CreateScriptService('SFDialogs.DialogEvent', event)
    set_dlg_text(button.Parent)
Пример #7
0
    set_cell_text(button.Parent)
    if calc.activate_cell_offset(0, -1):
        set_dlg_text(button.Parent)


def down(event: uno):
    """↓ボタン"""
    button = CreateScriptService('SFDialogs.DialogEvent', event)
    set_cell_text(button.Parent)
    if calc.activate_cell_offset(0, 1):
        set_dlg_text(button.Parent)


if __name__ == '__main__':
    #プログラムとして実行された場合(LOの外から)
    try:
        ScriptForge(hostname='localhost', port=2021)  #リスニングモードのLOに接続
    except:
        print("LOへの接続エラー")
        sys.exit(0)

    #calcファイルを開く
    ui = CreateScriptService("UI")
    docs = ui.Documents()
    path = os.path.join(os.getcwd(), "editcell.ods")
    url = "file:///{}".format(path.replace("\\", "/"))
    if not url in docs:
        doc = ui.OpenDocument(path)

    exec_dialog(None)