From 108c7bb5793a8da3bb6c3278249cc70b48729608 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 7 May 2013 16:01:39 -0500 Subject: also parse out bgcolor --- lib/Spreadsheet/Template/Generator/Parser/XLSX.pm | 27 ++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm b/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm index 630b7df..cfb13a7 100644 --- a/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm +++ b/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm @@ -83,18 +83,10 @@ sub _parse_styles { ($colors[2], $colors[3]) = ($colors[3], $colors[2]); my @fills = map { - my $fgcolor_node = $_->first_child('fgColor'); - my $fgcolor = 64; # XXX - if ($fgcolor_node) { - $fgcolor = '#' . $colors[$fgcolor_node->att('theme')] - if defined $fgcolor_node->att('theme'); - $fgcolor = $fgcolor_node->att('indexed') - if defined $fgcolor_node->att('indexed'); - } [ 0, # XXX - $fgcolor, - 0, # XXX + $self->_pattern_color(\@colors, $_->first_child('fgColor')), + $self->_pattern_color(\@colors, $_->first_child('bgColor')), ] } $root->find_nodes('//fills/fill/patternFill'); @@ -297,6 +289,21 @@ sub _filter_cell_contents { return $contents; } +sub _pattern_color { + my $self = shift; + my ($colors, $color_node) = @_; + + my $color = 64; # XXX + if ($color_node) { + $color = '#' . $colors->[$color_node->att('theme')] + if defined $color_node->att('theme'); + $color = $color_node->att('indexed') + if defined $color_node->att('indexed'); + } + + return $color; +} + __PACKAGE__->meta->make_immutable; no Moose; -- cgit v1.2.3-54-g00ecf