簡體   English   中英

從 python 運行 libreoffice 本地宏?

[英]run libreoffice local macro from python?

在 python 腳本中,我知道我可以通過抓取調度程序並執行以下操作在 My Macros 庫容器中執行自定義 libreoffice 宏:

dispatcher.executeDispatch(frame, "macro:///Standard.Module1.mymacro", "", 0, ())

但是如何調用本地文檔特定的宏呢? 我認為“宏///”有一個替代術語,例如“文檔///”,可以使上述調用起作用,但我在任何地方都找不到任何文檔。 宏調用字符串的正確格式是什么?

從文檔中獲取腳本提供程序並使用它來調用宏。

desktop = XSCRIPTCONTEXT.getDesktop()
file_url = uno.systemPathToFileUrl("C:/path/to/file.odt")
doc = desktop.loadComponentFromURL(file_url, "_blank", 0, ())
oScriptProvider = doc.getScriptProvider()
oScript = oScriptProvider.getScript(
    "vnd.sun.star.script:Standard.Module1.mymacro?"
    "language=Basic&location=document")
oScript.invoke((), (), ())

改編自 python 中的 Execute LibreOffice Calc Basic 宏

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM