From 1b0a5bb33762b1a366360fe496daa211f9ca956a Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 15 Mar 2015 01:52:27 -0400 Subject: use the proper Spreadsheet::ParseExcel api here --- lib/Spreadsheet/ParseXLSX.pm | 17 +++++++++++------ t/page-Setup.t | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/lib/Spreadsheet/ParseXLSX.pm b/lib/Spreadsheet/ParseXLSX.pm index 97bff38..e4d8890 100644 --- a/lib/Spreadsheet/ParseXLSX.pm +++ b/lib/Spreadsheet/ParseXLSX.pm @@ -171,9 +171,9 @@ sub _parse_sheet { my ($helem, $felem) = map { $hf->first_child($_) } qw(oddHeader oddFooter); - $sheet->{header} = $helem->text + $sheet->{Header} = $helem->text if $helem; - $sheet->{footer} = $felem->text + $sheet->{Footer} = $felem->text if $felem; $twig->purge; @@ -182,7 +182,8 @@ sub _parse_sheet { 'pageMargins' => sub { my ($twig, $margin) = @_; map { - $sheet->{pageMargins}->{$_} = $margin->att($_) // 0 + my $key = "\u${_}Margin"; + $sheet->{$key} = $margin->att($_) // 0 } qw(left right top bottom header footer); $twig->purge; @@ -190,9 +191,13 @@ sub _parse_sheet { 'pageSetup' => sub { my ($twig, $setup) = @_; - map { - $sheet->{pageSetup}->{$_} = $setup->att($_) // 0 - } qw(scale orientation horizontalDpi verticalDpi paperSize firstPageNumber scale); + $sheet->{Scale} = $setup->att('scale') // 100; + $sheet->{Landscape} = ($setup->att('orientation') // '') ne 'landscape'; + $sheet->{PaperSize} = $setup->att('paperSize') // 1; + $sheet->{PageStart} = $setup->att('firstPageNumber'); + $sheet->{UsePage} = $setup->att('useFirstPageNumber'); + $sheet->{HorizontalDPI} = $setup->att('horizontalDpi'); + $sheet->{VerticalDPI} = $setup->att('verticalDpi'); $twig->purge; }, diff --git a/t/page-Setup.t b/t/page-Setup.t index 71cca22..b29f8b7 100644 --- a/t/page-Setup.t +++ b/t/page-Setup.t @@ -10,21 +10,21 @@ my $wb = Spreadsheet::ParseXLSX->new->parse('t/data/page-Setup.xlsx'); my $ws1 = $wb->worksheet(0); # Header/Footer Text -is($ws1->{header}, '&CHeader'); -is($ws1->{footer}, '&CFooter'); +is($ws1->get_header, '&CHeader'); +is($ws1->get_footer, '&CFooter'); # Margins -is($ws1->{pageMargins}{header}, '0.3'); -is($ws1->{pageMargins}{footer}, '0.4'); -is($ws1->{pageMargins}{left}, '0.5'); -is($ws1->{pageMargins}{right}, '0.6'); -is($ws1->{pageMargins}{top}, '0.7'); -is($ws1->{pageMargins}{bottom}, '0.8'); +is($ws1->get_margin_header, '0.3'); +is($ws1->get_margin_footer, '0.4'); +is($ws1->get_margin_left, '0.5'); +is($ws1->get_margin_right, '0.6'); +is($ws1->get_margin_top, '0.7'); +is($ws1->get_margin_bottom, '0.8'); # Page Setup -is($ws1->{pageSetup}{scale}, '75'); -is($ws1->{pageSetup}{orientation}, 'landscape'); -is($ws1->{pageSetup}{paperSize}, '4'); # Code for 11*17 +is($ws1->get_print_scale, '75'); +ok(!$ws1->is_portrait); +is($ws1->get_paper, '4'); # Code for 11*17 # Cell Border Formatting is($ws1->get_cell(0,0)->get_format()->{'BdrDiag'}[0], 1); -- cgit v1.2.3-54-g00ecf