2011-11-01 8 views
5

パスワードで保護されたXSLXファイルからいくつかのフィールドを読み込む単純なperlスクリプトを書こうとしています。パスワードで保護されたXLSXをPerlでLinux(とwindows)で読む

私はSpreadsheet::XLSXSimpleXlsxを見ましたが、いずれもパスワードで保護されたファイルをサポートしていないようです。

どのようにこれを行うことができますか? Win32 :: OLE を使用して

は、これがそうのように行われます。

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

返信いただきありがとうございます、悲しいことに、まっすぐではありません。幸運にも私は古いスタイルのxslを読むことができますが、これはSpreadsheet :: ParseExcelを使って簡単です。 – Jim

+0

私の提案は基本的にXLSXをXLSに変換して読み込めるようにしてくれたので、古いXLSとして提供されていればもっと良い方法だということに心から同意します。 – Ian

答えて

3

現在のPerl xlsx読み取りモジュールは、暗号化されたファイルの読み取りをサポートしていません。

暗号化されたXMLファイルが通常のZIPコンテナではなくOLEコンテナドキュメントに格納されるため、これらのファイルを解読するのは簡単ではありません。

1

はこのOpenOfficeの/ LibreOfficeのでなんとかなる "はずです"。 xlsxや暗号化されたファイルのサポートについては、組み合わせはもちろんのこと、かなりのバグがあるようですので、まずLibreOfficeのGUIでファイルを開くようにして、特定のファイルで動作するかどうかをライブラリやコマンドラインから呼び出してみてください。

OpenOffice::OODOCはPerlコネクタですが、動作しない場合は、コマンドラインを使用してパスワードで保護されていないファイルに変換し、選択したツールで開くことができます。

関連する問題