在Linux(和Windows)上使用Perl读取受密码保护的XLSX文件

5
我正在尝试编写一个简单的Perl脚本,从一个受密码保护的XSLX文件中读取一些字段。
我已经查看了Spreadsheet::XLSXSimpleXlsx,但似乎都不支持密码保护的文件。
有什么建议吗?
使用Win32::OLE可以这样做:
my $Book =
  $Excel->Workbooks->Open( { FileName => $file, Password => $password } );

感谢回复,可惜并不是那么简单。幸运的是,我有读取旧样式xsl的选项,并且使用Spreadsheet::ParseExcel非常简单。 - Jim
考虑到我的建议基本上是一个把XLSX转换回XLS以便您可以阅读它的临时解决方案,我完全同意如果您仍然可以获得旧的XLS文件作为提供的文件,那将是更好的选择。 - Thaeli
2个回答

3

目前的Perl xlsx读取模块都不支持读取加密文件。

解密这些文件并不简单,因为加密的XML文件存储在OLE容器文档中,而不是通常的ZIP容器中。


1

这个应该可以通过OpenOffice/LibreOffice实现。xlsx和加密文件支持似乎存在很多bug,更不用说结合在一起了,所以我建议首先尝试在LibreOffice GUI中打开文件,如果对于您的特定文件有效,则可以通过库或命令行调用它。

OpenOffice::OODOC是Perl连接器,如果它不起作用,您可以使用命令行将其转换为非密码保护文件,然后在您选择的工具中打开它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接