TOP

我们在 Python 上为 LibreOffice Calc 编写一个宏

描述

LibreOffice Calc 允许用户使用内置编程语言 StarBasic 创建自己的宏。这种语言非常类似于 VBA 然而,由于很少使用,因此功能有限。

现代编程语言,例如 Python,提供了更多的可能性,并且拥有适用于所有场合的更广泛的附加库。

那么,让我们了解如何使用当今流行的编程语言(如 Python)创建自己的宏。


办公程序包 LibreOffice 允许您使用 Python、JavaScript、C++、Java 等第三方编程语言创建自己的宏。

StarBASIC HelloWorld 代码

首先,让我们回想一下如何使用标准工具 LibreOffice Calc 来编写自己的程序来编写宏。

下面是宏的代码 HelloWorld ,它规定了短语 "Hello World!" 在细胞内 "B7" 使用内置编程语言StarBasic。

要添加新宏,请打开菜单 Tools - Macros - Edit Macros... ,选择 Module1 并将以下文本复制到模块中:

Sub HelloWorld
    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    
    'REM "doc" it's a current LO Calc workbook (active worksheet)
    doc = CreateScriptService("Calc")
    doc.SetValue("B7", "Hello World!")
End Sub

然后,关闭 Macro Editor,返回到 LibreOffice Calc 并通过菜单运行我们的新宏 Tools - Macros - Run Macro...

Python 文件夹

在 Python 上编写宏之前,我们需要首先创建一个 *.py 文件( myPyScripts.py )在以下文件夹中:

%APPDATA%\LibreOffice\4\user\scripts\python

如果文件夹 脚本 Python 缺少,您需要手动创建它们。

Python HelloPython 代码

下面是宏的 Python 脚本 HelloPython ,它规定了短语 "Hello Python!" 在细胞内 "B8" 在程序 LibreOffice Calc 中。

要添加新宏,请打开文件 myPyScripts.py 借助于 Notepad++ (或者 Windows Notepad) 并将以下文本复制到此处:

from scriptforge import CreateScriptService

def HelloPython():
    doc = CreateScriptService("Calc")
    doc.SetValue("B8", "Hello Python!")
    return None

然后,关闭它 Notepad++ 并返回LibreOffice Calc。要混淆此脚本,请打开菜单 Tools - Macros - Organise Macros - Python... , 选择 "My Macros" ,打开文件夹 "myPyScripts" 并选择 HelloPython 按下按钮 Run

请注意,Python 上的 StarBasic 上的给定宏使用内置库 ScriptForge 。该库简化了最终用户编写宏的过程,将所有系统功能隐藏在“幕后”。

使用扩展

您也可以使用现成的套件 功能 公用事业 写在 Python 通过安装扩展 YLC Utilities

之后,此功能将在 LibreOffice Calc 中打开的所有文件中可用。