TOP

为 LibreOffice Calc 编写 Python 上的宏

描述

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 中打开的所有文件中可用。

LO Calc 中的 YLC 实用程序菜单

LO Calc 中的 YLC 实用程序菜单

Excel 中的 YLC 实用程序菜单

Excel 中的 YLC 实用程序菜单