问题描述
我需要以编程方式从受密码保护的ODS(Libreoffice Spreadsheet文件)中读取数据。我知道密码。
到目前为止,我已经尝试过:
- libreoffice命令行。没有用于密码的libreoffice开关。
- pyexcel_ods3(根本不处理密码)
- openpyxl(不会打开ODS)
- pandas_ods_reader(不使用密码处理AFAIK)
- 通过libreoffice宏:我知道这种方法,购买它不符合我的需求。
注释:
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)。