是否可以从 OPEN Libreoffice Calc 文件中读取数据?

Posted

技术标签:

【中文标题】是否可以从 OPEN Libreoffice Calc 文件中读取数据?【英文标题】:is it possible to read data from an OPEN Libreoffice Calc file? 【发布时间】:2021-01-23 11:36:35 【问题描述】:

用户打开一个 Calc .ODS 文件。

我的程序需要“实时”读取它的值,即在它打开时。

原因是它受密码保护,并且没有用于受密码保护的工作表的 python API。

pyexcel-ods 读取保存的文件,而不是打开的文件。

【问题讨论】:

【参考方案1】:

Python-UNO 是内置的 LO API。它提供了两种不同的方法来做到这一点。第一个更容易设置,但速度较慢。为此,请启动 LibreOffice Calc 侦听套接字。然后打开python提示符并输入import uno。对于 GUI 线程和从 python 运行 API 命令,侦听 LO 实例都会变慢。

另一种方法是正常打开 LO Calc,然后从内部运行 python 宏,例如转到 工具 -> 宏 -> 运行宏。宏也可以从打开文档、按钮或按键等事件中运行。这更快,因为 python 在与应用程序相同的进程中运行,而不需要通过套接字进行交互。

无论哪种方式,在 Windows 上,使用 LO 附带的 python 发行版,因为它包含胶水代码,可以导入 uno。这样做的一个缺点是您可能无法安装您可能想要的其他 python 包,例如lxml。 Linux 集成更好,因为系统范围的 python 可以加载 UNO 库,有时需要先安装一个包,具体取决于您的发行版。

教程位于http://christopher5106.github.io/office/2015/12/06/openoffice-libreoffice-automate-your-office-tasks-with-python-macros.html。 APSO 插件有助于运行和组织代码。

【讨论】:

不错!文档说端口可以在与 --unaccept=all 一起使用后立即关闭,这样应该可以解决性能问题。我现在正在检查。

以上是关于是否可以从 OPEN Libreoffice Calc 文件中读取数据?的主要内容,如果未能解决你的问题,请参考以下文章

Java Open\LibreOffice 在 odt 中插入文件\对象

Open SSL

从 Python 控制 Libreoffice Impress

LibreOffice 命令行 (soffice) 打印选项

是否可以使用 HTML、CSS 和 Javascript 构建 LibreOffice 侧边栏插件

MS OFFICE excel vs Open office Calc vs libreoffice calc 以及相同的公式对每个原因都不起作用任何建议