diff options
author | Alexey Mazurin <mazurin.alexey@gmail.com> | 2015-03-19 10:21:25 +0400 |
---|---|---|
committer | Alexey Mazurin <mazurin.alexey@gmail.com> | 2015-03-19 10:21:25 +0400 |
commit | 51c7608a44671076096db3ce40b3710fb8affc37 (patch) | |
tree | 5ae8727f63b68b8e1e900c9bfed2f03fe614d9dc /t | |
parent | b21bb3d2136f8dd01283e6078c462678ce07d2f5 (diff) | |
download | spreadsheet-parsexlsx-51c7608a44671076096db3ce40b3710fb8affc37.tar.gz spreadsheet-parsexlsx-51c7608a44671076096db3ce40b3710fb8affc37.zip |
Support of encrypted xlsx files
Added support for reading encrypted xlsx files in accordance with [MS-OFFCRYPTO]: Office Document Cryptography Structure
https://msdn.microsoft.com/en-us/library/cc313071(v=office.12).aspx
Support of standard and agile encryption
modified: lib/Spreadsheet/ParseXLSX.pm
new file: t/data/encryption-agile-123q.xlsx
new file: t/data/encryption-standard-default-password.xlsx
new file: t/encryption.t
Diffstat (limited to 't')
-rw-r--r-- | t/data/encryption-agile-123q.xlsx | bin | 0 -> 13312 bytes | |||
-rw-r--r-- | t/data/encryption-standard-default-password.xlsx | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | t/encryption.t | 30 |
3 files changed, 30 insertions, 0 deletions
diff --git a/t/data/encryption-agile-123q.xlsx b/t/data/encryption-agile-123q.xlsx Binary files differnew file mode 100644 index 0000000..be3b561 --- /dev/null +++ b/t/data/encryption-agile-123q.xlsx diff --git a/t/data/encryption-standard-default-password.xlsx b/t/data/encryption-standard-default-password.xlsx Binary files differnew file mode 100644 index 0000000..a863c1b --- /dev/null +++ b/t/data/encryption-standard-default-password.xlsx diff --git a/t/encryption.t b/t/encryption.t new file mode 100644 index 0000000..6def0f4 --- /dev/null +++ b/t/encryption.t @@ -0,0 +1,30 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use lib::Spreadsheet::ParseXLSX; + +my $parser = Spreadsheet::ParseXLSX->new(); +my $workbook = $parser->parse("t/data/encryption-agile-123q.xlsx", {password => '123q'}); + +my $worksheet; +my $cell; + +$worksheet = $workbook->worksheet(0); +ok(defined($workbook)); + +$cell = $worksheet->get_cell(1, 1); +ok(defined($cell) && $cell->value() eq 'abcdefgABCDEFG'); + + +open FH, "t/data/encryption-standard-default-password.xlsx"; +$workbook = $parser->parse(\*FH); + +ok(defined($workbook)); + +$worksheet = $workbook->worksheet(0); +$cell = $worksheet->get_cell(22, 8); +ok(defined($cell) && $cell->value() == 1911); + +done_testing; |