use strict; use Tk; use Tk::BrowseEntry; use Tk::LabFrame; use Tk::JPEG; use DBI; use DBD::Oracle; use Spreadsheet::WriteExcel; . . . . . . . sub generateDailyReport{ #Create Excel my $workbook = Spreadsheet::WriteExcel->new('Report.xls'); my $worksheet = $workbook->add_worksheet(); my $from_date = @_[0]; my $to_date = @_[1]; #Connect to DB my $dbh = DBI->connect("dbi:Oracle:cecdev9","asdm_dev","c1sc0pass") or die "cannot connect $DBI::errstr\n"; my $sth = $dbh->prepare("SELECT gamm.PROCESS_NAME, GAMM.APPLICATION_NAME, TO_CHAR (TRUNC (gmz.testtime - 7 / 24, 'DD'),'MM/DD/YYYY') Fiscal_Day,ROUND (AVG(DECODE (total_response_time, 0, NULL, total_response_time) / DECODE (total_page_count,0, 1,total_page_count))/ 1000,2) Average_Response_time FROM portal_gomez_bb_load gmz, GOMEZ_APP_MAPPING_MASTER gamm WHERE gmz.monitor_id = 3805260 AND (gamm.PROCESS_NAME = 'SAM_Exact_Product_Search' OR gamm.APPLICATION_NAME = 'SAM_Exact_Product_Search') AND trunc(gmz.testtime) BETWEEN to_date('09/12/2011','MM/DD/YYYY') AND to_date('09/15/2011','MM/DD/YYYY') AND success_flag = 0 GROUP BY gamm.PROCESS_NAME,GAMM.APPLICATION_NAME,TO_CHAR (TRUNC (gmz.testtime - 7 / 24, 'DD'),'MM/DD/YYYY')"); #execute the query $sth->execute(); my $i = "A1"; my $j = 1; while ( my @row = $sth->fetchrow_array( ) ) { print "@row\n"; $worksheet->write($i, \@row); $j=$j+1; $i="A$j"; open(FILE,'Report.xls'); } }