在 CentOS 上使用 LibreOffice 宏的完整指南
一 环境准备与启用宏
- 安装 LibreOffice(若未安装):执行命令:sudo yum install libreoffice。完成后从应用菜单或命令行启动 LibreOffice。
- 启用宏:打开 LibreOffice → 工具 → 选项 → LibreOffice → 安全性 → 宏安全性,将级别设为中等或低;需要时进入信任中心添加受信任的位置或宏文件。
- 录制宏(可选):工具 → 宏 → 录制宏,执行操作后停止录制,宏会自动保存到指定位置,便于后续编辑与复用。
二 宏的存放位置与组织
- 宏有三种存放容器:我的宏(用户级)、应用程序宏(系统级)、文档内嵌宏(随文档打包)。
- 典型路径(以 LibreOffice 4 为例,实际版本号可能不同):
- Basic 宏:
- 我的宏:~/.config/libreoffice/4/user/basic
- 应用程序宏:/usr/lib64/libreoffice/share/basic
- Python 宏:
- 我的宏:~/.config/libreoffice/4/user/Scripts/python
- 应用程序宏:/usr/lib64/libreoffice/share/Scripts/python
- 组织方式:容器 → 库(文件夹)→ 模块(.xba 或 .py 文件)→ 宏(模块内的函数)。文档内嵌宏需解压文档查看与维护。
三 编写宏
- LibreOffice Basic 示例(在 Writer 中插入文本)
Sub HelloWriter
Dim oDoc As Object, oText As Object, oCursor As Object
oDoc = ThisComponent
oText = oDoc.getText()
oCursor = oText.createTextCursor()
oCursor.gotoEnd(False)
oCursor.String = "Hello, LibreOffice Writer from Basic." & Chr(10)
End Sub
- Python 示例(在 Calc 的 A1 写入文本)
# 文件:~/.config/libreoffice/4/user/Scripts/python/Hello/HelloCalc.py
def greet_calc(*args):
document = XSCRIPTCONTEXT.getDocument()
sheet = document.getSheets().getByIndex(0) # 第一个工作表
cell = sheet.getCellByPosition(0, 0) # A1
cell.setString("Hello, LibreOffice Calc from Python")
g_exportedScripts = (greet_calc,) # 必须导出
- 编写与组织要点
- Basic 可在内置编辑器中新建模块(.xba)并编写;Python 建议用外部编辑器编写,放入对应 Scripts/python 目录。
- 使用 APSO(Alternative Script Organizer for Python) 扩展可更方便地创建/管理 Python 宏与模块(菜单:工具 → 宏 → Organize Python Scripts)。
四 运行与调试
- 运行方式
- 菜单:工具 → 宏 → 运行宏,按容器/库/模块/宏逐级选择并执行。
- 快捷键:在部分环境中可用 Alt+F8 打开宏对话框。
- 工具栏按钮:可将宏分配给自定义工具栏按钮,一键触发。
- 文档打开时自动运行:将宏放入文档内嵌宏容器,并在文档事件(如打开文档)中绑定调用。
- 调试建议
- Basic 可在“宏编辑器”中单步执行、设置断点;Python 建议使用外部 IDE 调试后粘贴运行,并通过消息框或日志输出定位问题。
五 安全与常见问题
- 安全性
- 仅在可信来源启用宏;建议将宏放在受信任位置,并在信任中心配置策略,避免运行未知宏。
- 宏级别设置为中等/低会降低限制,仅在必要时使用,用完可恢复更严格级别。
- 常见问题
- Python 宏不可直接在内置编辑器新建,需外部编辑并放入正确路径;使用 APSO 可显著改善管理体验。
- 路径与 URL:LibreOffice 使用 file:/// URL 表示文件路径,必要时用 UNO 工具函数进行系统路径与文件 URL 的相互转换。
- 版本差异:用户目录中的版本号(如 4)可能随 LibreOffice 版本变化,请以本机实际路径为准。