summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Simms <steve@deefs.net>2015-10-29 15:30:45 -0400
committerSteve Simms <steve@deefs.net>2015-10-29 15:30:45 -0400
commit18d2af2335741cdf59cb0725669f7aa7a7fad98b (patch)
treec25494a6ccf7a908a536bc0465206ceb09e14567
parent2524f3b910282998be8fb967eb90d50a7f38ec3f (diff)
downloadspreadsheet-parsexlsx-18d2af2335741cdf59cb0725669f7aa7a7fad98b.tar.gz
spreadsheet-parsexlsx-18d2af2335741cdf59cb0725669f7aa7a7fad98b.zip
Check to see if worksheets are hidden
-rw-r--r--lib/Spreadsheet/ParseXLSX.pm1
-rw-r--r--t/data/hidden-sheet.xlsxbin0 -> 7397 bytes
-rw-r--r--t/hidden-sheet.t15
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
new file mode 100644
index 0000000..d29cafb
--- /dev/null
+++ b/t/data/hidden-sheet.xlsx
Binary files differ
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;