http://qs321.pair.com?node_id=582941


in reply to How di I print the page header/footer from an excel spreadsheet

my $Book = $Excel->Workbooks->Open('test.xls'); my $Sheet = $Book->Worksheets("Sheet1"); $Sheet->Activate(); for my $position ( qw( Header Footer ) ) { for my $element ( qw( Left Center Right ) ) { my $item = $element . $position; print "$element$position: ", $Sheet->PageSetup->$item, "\n"; } }
++ to the first person to show me how to eliminate $item - I feel like it is unnecessary.

--
I'd like to be able to assign to an luser

Replies are listed 'Best First'.
Re^2: How do I print the page header/footer from an excel spreadsheet
by friedo (Prior) on Nov 08, 2006 at 18:50 UTC
    ++ to the first person to show me how to eliminate $item - I feel like it is unnecessary.
    $Sheet->PageSetup->${ \"$element$position" };
      You can use the "hash syntax" to access object properties (see Win32::OLE documentation)Properties of an object are implemented as a hashref, so more simply:

      $Sheet->PageSetup->{"$element$position"} # or $Sheet->PageSetup->{$element . $position}
      Update: pr
        Not all objects work that way under the hood, though. It's bad practice to access the hash data directly. (Though it's probably not very good practice to use arcane syntax for dynamic method names either!)
Re^2: How do I print the page header/footer from an excel spreadsheet
by boat73 (Scribe) on Nov 08, 2006 at 18:32 UTC
    Perfect, thanks much