diff options
Diffstat (limited to 'lib/Spreadsheet/Template/Generator/Parser/XLS.pm')
-rw-r--r-- | lib/Spreadsheet/Template/Generator/Parser/XLS.pm | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/lib/Spreadsheet/Template/Generator/Parser/XLS.pm b/lib/Spreadsheet/Template/Generator/Parser/XLS.pm index eb5c949..194558a 100644 --- a/lib/Spreadsheet/Template/Generator/Parser/XLS.pm +++ b/lib/Spreadsheet/Template/Generator/Parser/XLS.pm @@ -5,29 +5,45 @@ use Spreadsheet::ParseExcel; with 'Spreadsheet::Template::Generator::Parser::Excel'; -sub make_excel { +sub _build_excel { my $self = shift; - my ($filename) = @_; my $parser = Spreadsheet::ParseExcel->new; - my $excel = $parser->parse($filename); + my $excel = $parser->parse($self->filename); die $parser->error unless $excel; - # just for consistency + $self->_fixup_excel($excel); + + return $excel; +} + +sub _fixup_excel { + my $self = shift; + my ($excel) = @_; + for my $sheet ($excel->worksheets) { - $sheet->{RowHeight} = [ - map { defined $_ ? $_ : $sheet->get_default_row_height } - $sheet->get_row_heights - ]; - $sheet->{ColWidth} = [ - map { defined $_ ? $_ : $sheet->get_default_col_width } - $sheet->get_col_widths - ]; + $self->_normalize_cell_sizes($sheet); + $self->_parse_formulas($sheet); } +} - # XXX no formula support yet +sub _normalize_cell_sizes { + my $self = shift; + my ($sheet) = @_; - return $excel; + # just for consistency + $sheet->{RowHeight} = [ + map { defined $_ ? $_ : $sheet->get_default_row_height } + $sheet->get_row_heights + ]; + $sheet->{ColWidth} = [ + map { defined $_ ? $_ : $sheet->get_default_col_width } + $sheet->get_col_widths + ]; +} + +sub _parse_formulas { + # XXX no formula support yet } __PACKAGE__->meta->make_immutable; |