2011-11-01 24 views
5

Tôi đang cố viết một kịch bản lệnh perl đơn giản đọc một số trường từ tệp XSLX được bảo vệ bằng mật khẩu.Đọc mật khẩu bảo vệ XLSX trên Linux (và cửa sổ) với Perl

Tôi đã xem Spreadsheet::XLSXSimpleXlsx nhưng dường như không hỗ trợ tệp được bảo vệ bằng mật khẩu.

Bất kỳ ý tưởng nào về cách thực hiện điều này?

Sử dụng Win32 :: OLE này được thực hiện như sau:

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

Cảm ơn bạn đã trả lời, thật đáng buồn không thẳng về phía trước. May mắn thay tôi có tùy chọn đọc một xsl kiểu cũ và điều này đơn giản bằng cách sử dụng Spreadsheet :: ParseExcel. – Jim

+0

Vì đề xuất của tôi về cơ bản là một kludge để chuyển đổi XLSX trở lại thành XLS để bạn có thể đọc nó, tôi chân thành đồng ý rằng nếu bạn có thể nhận được tệp vẫn được cung cấp dưới dạng XLS cũ, đó là cách tốt hơn để đi.) – Ian

Trả lời

3

Không có mô-đun đọc xlsx Perl hiện tại nào hỗ trợ đọc tệp được mã hóa.

Không đơn giản để giải mã các tệp này vì tệp XML được mã hóa được lưu trữ trong tài liệu vùng chứa OLE trái ngược với vùng chứa ZIP thông thường.

1

này "nên" được doable với OpenOffice/LibreOffice. Dường như có một vài lỗi xung quanh xlsx và hỗ trợ tệp được mã hóa, chưa kể đến sự kết hợp, vì vậy tôi sẽ thử mở các tệp trong LibreOffice GUI trước và nếu nó hoạt động cho các tệp cụ thể của bạn, hãy gọi nó qua thư viện hoặc dòng lệnh.

OpenOffice::OODOC là trình kết nối Perl, nếu không hoạt động, bạn có thể sử dụng dòng lệnh để chuyển đổi thành tệp không được bảo vệ bằng mật khẩu và sau đó mở nó trong công cụ bạn chọn.

Các vấn đề liên quan