2011-11-01 20 views
5

Estoy intentando escribir un script simple de Perl que lea algunos campos de un archivo XSLX protegido con contraseña.Lectura de contraseña protegida XLSX en Linux (y Windows) con Perl

Miré Spreadsheet::XLSX y SimpleXlsx, pero ninguno parece admitir archivos protegidos con contraseña.

¿Alguna idea de cómo se puede hacer esto?

Usando Win32 :: OLE Esto se hace así:

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

Gracias por las respuestas, lamentablemente no es sencillo entonces. Afortunadamente tengo la opción de leer un estilo antiguo xsl y esto es simple usando Spreadsheet :: ParseExcel. – Jim

+0

Dado que mi sugerencia era básicamente un desafío para convertir el XLSX de nuevo en un XLS para que pudiera leerlo, acepto sinceramente que si puede obtener el archivo proporcionado como el antiguo XLS es una mejor manera de hacerlo). – Ian

Respuesta

3

Ninguno de los actuales módulos de lectura Perl xlsx admite la lectura de archivos cifrados.

No es sencillo descifrar estos archivos, ya que los archivos XML cifrados se almacenan en un documento contenedor OLE en lugar del contenedor ZIP habitual.

1

Este "debería" ser factible con OpenOffice/LibreOffice. Parece que hay bastantes errores alrededor de xlsx y compatibilidad con archivos encriptados, sin mencionar la combinación, así que trataría de abrir los archivos en la GUI de LibreOffice primero y si eso funciona para tus archivos específicos, llámalo a través de la biblioteca o la línea de comandos.

OpenOffice::OODOC es el conector Perl, si eso no funciona puede usar la línea de comando para convertir a un archivo protegido sin contraseña y luego abrirlo en la herramienta que prefiera.

Cuestiones relacionadas