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. |