summaryrefslogtreecommitdiffstats
path: root/lib/Spreadsheet/Template/Generator/Parser/XLS.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Spreadsheet/Template/Generator/Parser/XLS.pm')
-rw-r--r--lib/Spreadsheet/Template/Generator/Parser/XLS.pm44
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;