summaryrefslogtreecommitdiffstats
path: root/lib/Spreadsheet/ParseXLSX.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-05-10 12:19:20 -0500
committerJesse Luehrs <doy@tozt.net>2013-05-10 12:19:20 -0500
commit3a5411859af52d317402a1aecc6d2bfaf9362896 (patch)
tree26e8feffd0ce6b5858db202f2d17dcb451c2e97f /lib/Spreadsheet/ParseXLSX.pm
parentb05da042b20e76108a86ee91d2cb9619c4463824 (diff)
downloadspreadsheet-parsexlsx-3a5411859af52d317402a1aecc6d2bfaf9362896.tar.gz
spreadsheet-parsexlsx-3a5411859af52d317402a1aecc6d2bfaf9362896.zip
start parsing some workbook stuff
Diffstat (limited to 'lib/Spreadsheet/ParseXLSX.pm')
-rw-r--r--lib/Spreadsheet/ParseXLSX.pm46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/Spreadsheet/ParseXLSX.pm b/lib/Spreadsheet/ParseXLSX.pm
index c914276..3022988 100644
--- a/lib/Spreadsheet/ParseXLSX.pm
+++ b/lib/Spreadsheet/ParseXLSX.pm
@@ -36,6 +36,52 @@ sub _parse_workbook {
my ($zip) = @_;
my $files = $self->_extract_files($zip);
+
+ my $workbook = Spreadsheet::ParseExcel::Workbook->new;
+
+ my @sheets = map {
+ my $sheet = Spreadsheet::ParseExcel::Worksheet->new(
+ Name => $_->att('name'),
+ _Book => $workbook,
+ _SheetNo => $_->att('sheetId') - 1,
+ );
+ $self->_parse_sheet($sheet, $files);
+ $sheet
+ } $files->{workbook}->find_nodes('//sheets/sheet');
+
+ my ($version) = $files->{workbook}->find_nodes('//fileVersion');
+ my ($properties) = $files->{workbook}->find_nodes('//workbookPr');
+
+ $workbook->{Version} = join('-',
+ map { $version->att($_) } qw(appName lowestEdited)
+ );
+ $workbook->{Flag1904} = $properties->att('date1904') ? 1 : 0;
+
+ $workbook->{FmtClass} = Spreadsheet::ParseExcel::FmtDefault->new; # XXX
+
+ $workbook->{Worksheet} = \@sheets;
+ $workbook->{SheetCount} = scalar(@sheets);
+
+ # $workbook->{Format} = ...;
+ # $workbook->{FormatStr} = ...;
+ # $workbook->{Font} = ...;
+
+ # $workbook->{PkgStr} = ...;
+
+ # $workbook->{StandardWidth} = ...;
+
+ # $workbook->{Author} = ...;
+
+ # $workbook->{PrintArea} = ...;
+ # $workbook->{PrintTitle} = ...;
+
+ return $workbook;
+}
+
+sub _parse_sheet {
+ my $self = shift;
+ my ($sheet, $files) = @_;
+
# ...
}