Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Scope of workbook in write excel

by devbond (Novice)
on Sep 29, 2013 at 17:19 UTC ( #1056242=perlquestion: print w/ replies, xml ) Need Help??
devbond has asked for the wisdom of the Perl Monks concerning the following question:

I want to declare workbook outside the subroutine because i want to use it in other subs also .but the following code is not working for me. Please Help.
#!/usr/bin/perl use warnings; use Spreadsheet::WriteExcel; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; my $workbook; my @s; $Month=Sept; sub create_excel { $workbook = Spreadsheet::WriteExcel->new('FAISTATS_'."$Month".'.xls'); for ( $i=1;$i<=8;$i++) { $s[$i] = $workbook->add_worksheet( "cpzea0".$i."a0001" ) ; } $s[9] = $workbook->add_worksheet( "WEEKLY" ) ; $s[10] = $workbook->add_worksheet( "MONTHLY" ) ; } create_excel();

Comment on Scope of workbook in write excel
Download Code
Re: Scope of workbook in write excel
by Anonymous Monk on Sep 29, 2013 at 17:34 UTC
Re: Scope of workbook in write excel
by ig (Vicar) on Sep 30, 2013 at 06:51 UTC

    You don't say in what way your program is not working for you. On my system (Windows running perl 5.15) there were a few problems.

    I added use strict;, which I do habitually. This revealed one fault and I made two other changes to avoid warnings. Then the program ran but produced an empty file, so I added an explicit close() and it created worksheets as expected. I ended up with the following:

    use strict; use warnings; use Spreadsheet::WriteExcel; #use Spreadsheet::ParseExcel; #use Spreadsheet::ParseExcel::SaveParser; my $workbook; my @s; my $Month="Sept"; sub create_excel { $workbook = Spreadsheet::WriteExcel->new('FAISTATS_'."$Month".'.xl +s'); for ( my $i=1;$i<=8;$i++) { $s[$i] = $workbook->add_worksheet( "cpzea0".$i."a0001" ) ; } $s[9] = $workbook->add_worksheet( "WEEKLY" ) ; $s[10] = $workbook->add_worksheet( "MONTHLY" ) ; } create_excel(); $workbook->close();

    It may help you to review the caveats about close() in Spreadsheet::WriteExcel.

Re: Scope of workbook in write excel
by MidLifeXis (Prior) on Sep 30, 2013 at 13:31 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1056242]
Approved by Old_Gray_Bear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2014-12-26 00:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (163 votes), past polls