Чтение защищенного паролем XLSX на Linux (и Windows) с Perl - PullRequest
5 голосов
/ 01 ноября 2011

Я пытаюсь написать простой Perl-скрипт, который читает некоторые поля из XSLX-файла, защищенного паролем.

Я смотрел на Электронная таблица :: XLSX и SimpleXlsx но ни один из них не поддерживает защищенные паролем файлы.

Есть идеи, как это можно сделать?

Использование Win32 :: OLE Это делается так:

my $Book =
  $Excel->Workbooks->Open( { FileName => $file, Password => $password } );

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Ни один из текущих модулей чтения Perl xlsx не поддерживает чтение зашифрованных файлов.

Непросто дешифровать эти файлы, поскольку зашифрованные файлы XML хранятся в документе контейнера OLE, а не в обычном контейнере ZIP..

1 голос
/ 01 ноября 2011

Это "должно" быть выполнимо с OpenOffice / LibreOffice. Похоже, что в xlsx и поддержке зашифрованных файлов довольно много ошибок, не говоря уже о комбинации, поэтому я сначала попытался бы открыть файлы в графическом интерфейсе LibreOffice, и если это работает для ваших конкретных файлов, вызовите его через библиотеку или командную строку.

OpenOffice :: OODOC - это коннектор Perl, если он не работает, вы можете использовать командную строку для преобразования в незащищенный паролем файл, а затем открыть его в выбранном вами инструменте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...