From 5339faa0bccf8a82d1e0eb806e81dc2175630fa8 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 22 May 2016 06:54:03 -0400 Subject: patternType should default to 0 (vfilatov, #41) --- lib/Spreadsheet/ParseXLSX.pm | 3 ++- t/bug-41.t | 14 ++++++++++++++ t/data/bug-41.xlsx | Bin 0 -> 54720 bytes 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 t/bug-41.t create mode 100644 t/data/bug-41.xlsx 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 Binary files /dev/null and b/t/data/bug-41.xlsx differ -- cgit v1.2.3