summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-05-07 16:01:39 -0500
committerJesse Luehrs <doy@tozt.net>2013-05-07 16:01:39 -0500
commit108c7bb5793a8da3bb6c3278249cc70b48729608 (patch)
treeefc692e6ad72d527f60911792a20c314eaa71d5a
parent0fd58674a9607a5fbafaf68850e0fe24b00775cf (diff)
downloadspreadsheet-template-108c7bb5793a8da3bb6c3278249cc70b48729608.tar.gz
spreadsheet-template-108c7bb5793a8da3bb6c3278249cc70b48729608.zip
also parse out bgcolor
-rw-r--r--lib/Spreadsheet/Template/Generator/Parser/XLSX.pm27
1 files 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;