diff options
author | Steve Simms <steve@deefs.net> | 2015-10-29 15:30:45 -0400 |
---|---|---|
committer | Steve Simms <steve@deefs.net> | 2015-10-29 15:30:45 -0400 |
commit | 18d2af2335741cdf59cb0725669f7aa7a7fad98b (patch) | |
tree | c25494a6ccf7a908a536bc0465206ceb09e14567 | |
parent | 2524f3b910282998be8fb967eb90d50a7f38ec3f (diff) | |
download | spreadsheet-parsexlsx-18d2af2335741cdf59cb0725669f7aa7a7fad98b.tar.gz spreadsheet-parsexlsx-18d2af2335741cdf59cb0725669f7aa7a7fad98b.zip |
Check to see if worksheets are hidden
-rw-r--r-- | lib/Spreadsheet/ParseXLSX.pm | 1 | ||||
-rw-r--r-- | t/data/hidden-sheet.xlsx | bin | 0 -> 7397 bytes | |||
-rw-r--r-- | t/hidden-sheet.t | 15 |
3 files changed, 16 insertions, 0 deletions
diff --git a/lib/Spreadsheet/ParseXLSX.pm b/lib/Spreadsheet/ParseXLSX.pm index ad7f54c..535063a 100644 --- a/lib/Spreadsheet/ParseXLSX.pm +++ b/lib/Spreadsheet/ParseXLSX.pm @@ -116,6 +116,7 @@ sub _parse_workbook { _Book => $workbook, _SheetNo => $idx, ); + $sheet->{SheetHidden} = 1 if defined $_->att('state') and $_->att('state') eq 'hidden'; $self->_parse_sheet($sheet, $files->{sheets}{$idx}); ($sheet) } else { diff --git a/t/data/hidden-sheet.xlsx b/t/data/hidden-sheet.xlsx Binary files differnew file mode 100644 index 0000000..d29cafb --- /dev/null +++ b/t/data/hidden-sheet.xlsx diff --git a/t/hidden-sheet.t b/t/hidden-sheet.t new file mode 100644 index 0000000..09d4402 --- /dev/null +++ b/t/hidden-sheet.t @@ -0,0 +1,15 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use Spreadsheet::ParseXLSX; + +my $wb = Spreadsheet::ParseXLSX->new->parse('t/data/hidden-sheet.xlsx'); +my $ws1 = $wb->worksheet(0); +ok(!$ws1->is_sheet_hidden(), 'Regular worksheet is not hidden'); + +my $ws2 = $wb->worksheet(1); +ok($ws2->is_sheet_hidden(), 'Hidden worksheet is hidden'); + +done_testing; |