diff options
-rw-r--r-- | lib/Spreadsheet/ParseXLSX.pm | 3 | ||||
-rw-r--r-- | t/bug-41.t | 14 | ||||
-rw-r--r-- | t/data/bug-41.xlsx | bin | 0 -> 54720 bytes |
3 files changed, 16 insertions, 1 deletions
diff --git a/lib/Spreadsheet/ParseXLSX.pm b/lib/Spreadsheet/ParseXLSX.pm index 2d46173..fda4742 100644 --- a/lib/Spreadsheet/ParseXLSX.pm +++ b/lib/Spreadsheet/ParseXLSX.pm @@ -645,8 +645,9 @@ sub _parse_styles { ); my @fills = map { + my $pattern_type = $_->att('patternType'); [ - $fill{$_->att('patternType')}, + ($pattern_type ? $fill{$pattern_type} : 0), $self->_color($workbook->{Color}, $_->first_child('s:fgColor'), 1), $self->_color($workbook->{Color}, $_->first_child('s:bgColor'), 1), ] diff --git a/t/bug-41.t b/t/bug-41.t new file mode 100644 index 0000000..7bcb52b --- /dev/null +++ b/t/bug-41.t @@ -0,0 +1,14 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use Spreadsheet::ParseXLSX; + +{ + local $SIG{__WARN__} = sub { fail("unexpected warning: $_[0]") }; + my $wb = Spreadsheet::ParseXLSX->new->parse('t/data/bug-41.xlsx'); + pass('it parses successfully'); +} + +done_testing; diff --git a/t/data/bug-41.xlsx b/t/data/bug-41.xlsx Binary files differnew file mode 100644 index 0000000..d80db9e --- /dev/null +++ b/t/data/bug-41.xlsx |