openoffice-calc - 如何从另一个文档运行脚本

标签 openoffice-calc libreoffice-basic openoffice-basic

我有两个文档 LibreOffice calc test1.ods 和 test2.ods。 我想从 test1 的脚本运行 test2 中的脚本。

  1. 当 test2 通过 test1 的脚本打开时,即使从 test2 也无法在 test2 上运行该脚本。我如何传递 test2 文档的安全性?
  2. 如何从 test1 上的脚本自动运行 test2 上的脚本?

REM  *****  BASIC  *****
'Script on Test1
Sub Main

Dim urlDest As String
Dim PropFich(1) As New com.sun.star.beans.PropertyValue
Dim oDocDest As Object

    PropFich(0).Name = "MacroExecutionMode" 
    PropFich(0).value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE
    urlDest = ConvertToUrl("/home/patrick/Bureau/Test/test2.ods")
    oDocDest = StarDesktop.loadComponentFromUrl(urlDest, "_blank", 0, PropFich())
    ' ...
    'run oDocDest.Standard.Module1.Main() ???
End Sub

最佳答案

获取另一个文档的脚本提供程序并使用它来调用宏。

oScriptProvider = oDocDest.getScriptProvider()
oScript = oScriptProvider.getScript(_
    "vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=document")
result = oScript.invoke(Array(), Array(), Array())

为此,您需要通过转到工具 > 选项 > 安全性来允许宏运行。

关于openoffice-calc - 如何从另一个文档运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68973333/

相关文章:

java - OpenOffice 电子表格监听器

openoffice-calc - 一个单元格内容(文本)作为另一个单元格中的变量

libreoffice - Libre Office 宏裁剪图像

macros - [Libre|Open]Office中当前文档的路径

macros - Libreoffice 计算 : loop throught cells macro

openoffice-basic - OpenOffice如何添加3种以上条件格式?

javascript - OpenOffice Calc Javascript 函数

ruby-on-rails-3 - Roo 错误。任何解析 .ods 文件的 gem

java - 如何克服java堆空间的OutOfMemoryError?

openoffice-calc - 如何将由空格分隔的单个单词从单列拆分为两列