diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-05-08 19:16:29 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-05-08 19:16:29 -0500 |
commit | 91752721b10639b4ae49c33c48e0f18ba0cc36e9 (patch) | |
tree | e7d0e1db694549fc4e27a80e011ea77c5dfee7de /lib/Spreadsheet/Template | |
parent | 61549b9bceb545be8f91338a11cd287205e3153d (diff) | |
download | spreadsheet-template-91752721b10639b4ae49c33c48e0f18ba0cc36e9.tar.gz spreadsheet-template-91752721b10639b4ae49c33c48e0f18ba0cc36e9.zip |
generate borders
Diffstat (limited to 'lib/Spreadsheet/Template')
-rw-r--r-- | lib/Spreadsheet/Template/Writer/Excel.pm | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/lib/Spreadsheet/Template/Writer/Excel.pm b/lib/Spreadsheet/Template/Writer/Excel.pm index fc10e52..6afa7d1 100644 --- a/lib/Spreadsheet/Template/Writer/Excel.pm +++ b/lib/Spreadsheet/Template/Writer/Excel.pm @@ -165,14 +165,45 @@ sub _write_cell { my $format; if (exists $data->{format}) { - my $properties = { + my %border = ( + thin => 1, + ); + + my $properties = { %{ $data->{format} } }; + + if (my $border = delete $properties->{border}) { + $properties = { + left => $border->[0], + right => $border->[1], + top => $border->[2], + bottom => $border->[3], + %$properties, + }; + } + + if (my $border_color = delete $properties->{border_color}) { + $properties = { + left_color => $border_color->[0], + right_color => $border_color->[1], + top_color => $border_color->[2], + bottom_color => $border_color->[3], + %$properties, + }; + } + + $properties = { map { - my $v = $data->{format}{$_}; + my $v = $properties->{$_}; $_ => JSON::is_bool($v) ? ($v ? 1 : 0) + : $_ eq 'left' ? $border{$v} + : $_ eq 'right' ? $border{$v} + : $_ eq 'top' ? $border{$v} + : $_ eq 'bottom' ? $border{$v} : $_ =~ /color/ ? $self->_color($v) : $v - } keys %{ $data->{format} } + } keys %$properties }; + $format = $self->_format($properties); } |