是否有编程方式读取/打开/解密Libreoffice ODS文件最好是python / bash

问题描述

我需要以编程方式从受密码保护的ODS(Libreoffice Spreadsheet文件)中读取数据。我知道密码。

到目前为止,我已经尝试过:

  1. libreoffice命令行。没有用于密码的libreoffice开关。
  2. pyexcel_ods3(根本不处理密码)
  3. openpyxl(不会打开ODS)
  4. pandas_ods_reader(不使用密码处理AFAIK)
  5. 通过libreoffice宏:我知道这种方法,购买它不符合我的需求。

我发现没有一个工具在其代码/文档中甚至提到了“密码”。

还有其他方法可以读取/转换/打开受密码保护的ODS文件吗?

注释:

n.b。我知道密码,我拥有文件,可以通过手动输入密码通过GUI打开文件

This questions is NOT related至#58705829。 Q很困惑,可能是在问写而不是读。

解决方法

使用 unoconv 解密文件 (虽然不是来自 Ubuntu 存储库的文件,它在 this commit 之前,而不是来自 FreeBSD 软件包,这也不起作用盒子)

用法:

unoconv --password=$PASSWORD -d spreadsheet -f ods -o decrypted encrypted.ods

这将创建一个 decrypted.ods 文件。

也适用于加密的 xls/xlsx 文件。

在 Ubuntu 变体和 FreeBSD 上确认,使用当前的 github 版本和当前的 pip 包 (unoconv-0.9.0)。