summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-05-08 18:46:00 -0500
committerJesse Luehrs <doy@tozt.net>2013-05-08 18:46:00 -0500
commit61549b9bceb545be8f91338a11cd287205e3153d (patch)
tree7ce722ec62df26d2da7b1bfd68101e5ff344523a
parentcf50c6eb979dcbf8c26c424ec2b944afe0c37cea (diff)
downloadspreadsheet-template-61549b9bceb545be8f91338a11cd287205e3153d.tar.gz
spreadsheet-template-61549b9bceb545be8f91338a11cd287205e3153d.zip
support border styles
-rw-r--r--lib/Spreadsheet/Template/Generator/Parser/Excel.pm12
-rw-r--r--lib/Spreadsheet/Template/Generator/Parser/XLSX.pm12
2 files changed, 21 insertions, 3 deletions
diff --git a/lib/Spreadsheet/Template/Generator/Parser/Excel.pm b/lib/Spreadsheet/Template/Generator/Parser/Excel.pm
index e9082ff..822b35b 100644
--- a/lib/Spreadsheet/Template/Generator/Parser/Excel.pm
+++ b/lib/Spreadsheet/Template/Generator/Parser/Excel.pm
@@ -1,6 +1,8 @@
package Spreadsheet::Template::Generator::Parser::Excel;
use Moose::Role;
+use List::MoreUtils 'any';
+
with 'Spreadsheet::Template::Generator::Parser';
requires '_build_excel';
@@ -114,6 +116,11 @@ sub _parse_cell {
3 => 'vjustify',
);
+ my %border = (
+ 0 => 'none',
+ 5 => 'thin',
+ );
+
if (!$format->{IgnoreFont}) {
$format_data->{size} = $format->{Font}{Height};
$format_data->{color} = $format->{Font}{Color}
@@ -125,6 +132,11 @@ sub _parse_cell {
}
if (!$format->{IgnoreBorder}) {
$format_data->{border_color} = $format->{BdrColor};
+ if (any { $_ != 0 } @{ $format->{BdrStyle} }) { # XXX
+ $format_data->{border} = [
+ map { $border{$_} } @{ $format->{BdrStyle} }
+ ];
+ }
}
if (!$format->{IgnoreAlignment}) {
$format_data->{align} = $halign{$format->{AlignH}}
diff --git a/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm b/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm
index 292b5ea..bacaabd 100644
--- a/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm
+++ b/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm
@@ -64,6 +64,12 @@ sub _parse_styles {
# XXX ...
);
+ my %border = (
+ none => 0,
+ thin => 5,
+ # XXX ...
+ );
+
my $rels_xml = $self->_parse_xml("xl/_rels/workbook.xml.rels");
my ($theme_file) = map {
$_->att('Target')
@@ -104,9 +110,9 @@ sub _parse_styles {
} qw(left right top bottom)
],
styles => [
- # map { $border->first_child($_)->style }
- # qw(left right top bottom)
- (0) x 4 # XXX
+ map {
+ $border{$border->first_child($_)->att('style') || 'none'}
+ } qw(left right top bottom)
],
diagonal => [
0, # XXX ->att('diagonalDown') and ->att('diagonalUp')