summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Spreadsheet/ParseXLSX.pm3
-rw-r--r--t/bug-41.t14
-rw-r--r--t/data/bug-41.xlsxbin0 -> 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
new file mode 100644
index 0000000..d80db9e
--- /dev/null
+++ b/t/data/bug-41.xlsx
Binary files differ