From 61549b9bceb545be8f91338a11cd287205e3153d Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 8 May 2013 18:46:00 -0500 Subject: support border styles --- lib/Spreadsheet/Template/Generator/Parser/Excel.pm | 12 ++++++++++++ lib/Spreadsheet/Template/Generator/Parser/XLSX.pm | 12 +++++++++--- 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') -- cgit v1.2.3-54-g00ecf