summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFL <f20@reckon.co.uk>2014-07-05 15:37:18 +0000
committerFL <f20@reckon.co.uk>2014-07-05 15:37:18 +0000
commit5bfde2e914636f99e5994c843dd158f6804e5db5 (patch)
treef90920d5e41da343f5b0cac2f950a3dcda54de99
parent31add70244e61a269db8c69bbd2d2042c5d7d4f5 (diff)
downloadspreadsheet-parsexlsx-5bfde2e914636f99e5994c843dd158f6804e5db5.tar.gz
spreadsheet-parsexlsx-5bfde2e914636f99e5994c843dd158f6804e5db5.zip
Add support for optional $formatter argument in parse method.
-rw-r--r--lib/Spreadsheet/ParseXLSX.pm11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/Spreadsheet/ParseXLSX.pm b/lib/Spreadsheet/ParseXLSX.pm
index d20d734..b7346e7 100644
--- a/lib/Spreadsheet/ParseXLSX.pm
+++ b/lib/Spreadsheet/ParseXLSX.pm
@@ -33,17 +33,18 @@ sub new {
bless {}, shift;
}
-=method parse($file)
+=method parse($file, $formatter)
Parses an XLSX file. Parsing errors throw an exception. C<$file> can be either
a filename or an open filehandle. Returns a
L<Spreadsheet::ParseExcel::Workbook> instance containing the parsed data.
+The C<$formatter> argument is an optional formatter class as described in L<Spreadsheet::ParseExcel>.
=cut
sub parse {
my $self = shift;
- my ($file) = @_;
+ my ($file, $formatter) = @_;
my $zip = Archive::Zip->new;
my $workbook = Spreadsheet::ParseExcel::Workbook->new;
@@ -62,12 +63,12 @@ sub parse {
die "Argument to 'new' must be a filename or open filehandle";
}
- return $self->_parse_workbook($zip, $workbook);
+ return $self->_parse_workbook($zip, $workbook, $formatter);
}
sub _parse_workbook {
my $self = shift;
- my ($zip, $workbook) = @_;
+ my ($zip, $workbook, $formatter) = @_;
my $files = $self->_extract_files($zip);
@@ -81,7 +82,7 @@ sub _parse_workbook {
$workbook->{Flag1904} = $properties->att('date1904') ? 1 : 0;
- $workbook->{FmtClass} = Spreadsheet::ParseExcel::FmtDefault->new; # XXX
+ $workbook->{FmtClass} = $formatter || Spreadsheet::ParseExcel::FmtDefault->new;
my $themes = $self->_parse_themes((values %{ $files->{themes} })[0]); # XXX