summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-05-08 19:16:29 -0500
committerJesse Luehrs <doy@tozt.net>2013-05-08 19:16:29 -0500
commit91752721b10639b4ae49c33c48e0f18ba0cc36e9 (patch)
treee7d0e1db694549fc4e27a80e011ea77c5dfee7de
parent61549b9bceb545be8f91338a11cd287205e3153d (diff)
downloadspreadsheet-template-91752721b10639b4ae49c33c48e0f18ba0cc36e9.tar.gz
spreadsheet-template-91752721b10639b4ae49c33c48e0f18ba0cc36e9.zip
generate borders
-rw-r--r--lib/Spreadsheet/Template/Writer/Excel.pm37
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);
}