2011-11-01 9 views
5

Sto provando a scrivere un semplice script perl che legge alcuni campi da un file XSLX protetto da password.Lettura protetta da password XLSX su linux (e windows) con Perl

Ho visto Spreadsheet::XLSX e SimpleXlsx ma nessuno dei due sembra supportare i file protetti da password.

Qualche idea su come questo può essere fatto?

Utilizzando Win32 :: OLE Questo viene fatto in questo modo:

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

Grazie per le risposte, purtroppo non dritto in avanti quindi. Fortunatamente ho la possibilità di leggere un vecchio stile xsl e questo è semplice usando Spreadsheet :: ParseExcel. – Jim

+0

Dato che il mio suggerimento era fondamentalmente un kludge per convertire XLSX in un XLS in modo da poterlo leggere, sono pienamente d'accordo che se è possibile ottenere il file ancora fornito come XLS vecchio, questo è un modo migliore per andare.) – Ian

risposta

3

Nessuno degli attuali moduli di lettura xlsx Perl supporta la lettura di file crittografati.

Non è semplice decodificare questi file poiché i file XML crittografati sono archiviati in un documento contenitore OLE anziché nel solito contenitore ZIP.

1

Questo "dovrebbe" essere fattibile con OpenOffice/LibreOffice. Sembra che ci siano parecchi bug riguardo xlsx e supporto per i file crittografati, per non parlare della combinazione, quindi proverei ad aprire i file nella GUI di LibreOffice e se funziona per i tuoi file specifici, chiamalo tramite libreria o riga di comando.

OpenOffice::OODOC è il connettore Perl, se non funziona, è possibile utilizzare la riga di comando per convertire in un file non protetto da password e quindi aprirlo nello strumento desiderato.