summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;