运行 share/scripts/javascript 命令行宏

Posted

技术标签:

【中文标题】运行 share/scripts/javascript 命令行宏【英文标题】:Run share/scripts/javascript command line macro 【发布时间】:2015-12-18 20:34:51 【问题描述】:

我需要从命令行运行 javascript 宏。我的 .js 脚本位于

open_office_location/share/Scripts/javascript/MultiplyCSV/multiplycsv.js

我发现了这个:

soffice.exe -headless "D:\test1.ODS" "macro://test1/Standard.Module1.Main"

如何识别脚本的模块名称? 我试过了:

"macro://.js 文件的完整路径"

"macro://MultiplyCSV.multiplycsv.js"

"macro://MultiplyCSV/multiplycsv.js"

还有更多其他.. 我找不到解决方案。

对不起,我的英语不好。 你能帮助我吗?

【问题讨论】:

【参考方案1】:

最简单的方法是将其分配给“打开文档”事件。每当打开文档时,这将运行一个宏。为此,请转至Tools -> Customized -> Events。更多信息在:https://wiki.openoffice.org/wiki/Documentation/OOoAuthors_User_Manual/Getting_Started/How_to_run_a_macro

如果您需要更大的灵活性,您可以设置一个 Basic 函数来调用 Javascript 代码。然后使用macro:// 语法。为此,首先将这个Basic函数添加到Module1,改编自authoritative Andrew Pitonyak document:

Sub CallMultiplyCSV
    Dim oDisp
    Dim sMacroURL As String
    Dim sMacroName As String
    Dim sMacroLocation As String
    Dim oFrame
    oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
    REM To figure out the URL, add a button and then set the button
    REM to call a macro.
    sMacroName = "vnd.sun.star.script:MultiplyCSV.multiplycsv.js"
    sMacroLocation = "?language=JavaScript&location=share"
    sMacroURL = sMacroName & sMacroLocation
    REM I want to call a macro contained in ThisComponent, so I
    REM must use the frame from the document containing the macro
    REM as the dispatch recipient.
    oFrame = ThisComponent.CurrentController.Frame
    oDisp.executeDispatch(oFrame, sMacroURL, "", 0, Array())
    'oDisp.executeDispatch(StarDesktop, sMacroURL, "", 0, Array())
End Sub

然后调用这个Basic函数:

soffice.exe -headless "D:\test1.ODS" "macro://test1/Standard.Module1.CallMultiplyCSV"

有关sMacroNamesMacroLocation的详细信息,请参阅:https://wiki.openoffice.org/wiki/Documentation/DevGuide/Scripting/Scripting_Framework_URI_Specification

【讨论】:

以上是关于运行 share/scripts/javascript 命令行宏的主要内容,如果未能解决你的问题,请参考以下文章

JMeter笔记15 | JMeter场景运行

JMeter笔记15 | JMeter场景运行

在 spyder IDE 中,运行选择工作正常,运行文件保持运行/挂起

关于运行osgi插件时和运行环境相关的问题

运行里面怎么以管理员身份运行

linux下如何运行程序?