TOP

如何将 Python 脚本嵌入 ODS 文件

描述

LibreOffice Calc 允许用户使用 Python 语言创建自己的宏,但是这些宏只能存储在用户的电脑上,即程序本身中。不幸的是,LO Calc 没有内置功能可以将 Python 脚本存储在 *.ods 文件本身中,这给使用这些脚本带来了不便,因为无法将它们与数据一起传输给其他用户。

这个问题只能手动解决,即重新打包 *.ods 文件,并添加必要的 Python 脚本。

因此,让我们学习如何将 Python 脚本嵌入 ODS 文件,以便能够将其发送给其他用户。


Python Folder

所有 Python 宏都存储在以下文件夹中:

%APPDATA%\LibreOffice\4\user\Scripts\python

如果文件夹 Scriptspython 不存在,则需要手动创建它们。

Python 宏代码

以下是用于宏 HelloPython 的 Python 脚本,它在 LibreOffice Calc 程序中将短语 "Hello Python!" 写入单元格 "B8"

要添加新宏,创建文件 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 脚本转移到 ODS 文件

为了将 Python 脚本转移到 *.ods 文件中,需要使用任何解压软件(7-zip, WinRAR 等)将其解压到一个单独的文件夹中。是的,没错,您的 *.ods 文件只是一个文件夹和文件集合的压缩包。

然后在此解压后的文件夹中创建子文件夹 Scripts,并在其中创建子文件夹 python。下一步,将文件 myPyScripts.py 复制到 python 文件夹中。

还需要明确指定您的 Python 宏所在的文件路径。为此,在文件夹 META-INF 中编辑文件 manifest.xml,并添加以下行:

<manifest:file-entry manifest:full-path="Scripts/python/myPyScripts.py" manifest:media-type="application/binary"/>

现在,将您更改过的先前解压的文件夹内容打包成一个 *.zip 压缩包。然后,重命名此压缩包,更改其名称(以免覆盖您的原始文件)并将扩展名从 *.zip 更改为 *.ods。

使用扩展程序

您也可以使用一组现成的 函数实用程序Python 编写的,通过安装扩展程序 YLC Utilities

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

LO Calc 中的 YLC 实用程序菜单

LO Calc 中的 YLC 实用程序菜单

Excel 中的 YLC 实用程序菜单

Excel 中的 YLC 实用程序菜单