Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
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 examining the Monastery: (7)
As of 2014-09-19 23:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (151 votes), past polls