use DBI; use IniConf; use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; use File::Copy qw(copy); use MIME::Lite; #FOR EXCEL COPY sub CheckDrive(){ if ( ! opendir(TEMPLATEPATH,$GIST_TEMPLATEPATH)) { my $objnet=Win32::OLE->CreateObject("Wscript.Network"); $objnet->MapNetworkDrive("H:","\\\\prodapt-bpo\\bpodata"); } copy("$GIST_TEMPLATEPATH"."$GIST_EXCELNAME","$ExcelName") or die DisplayError("Copy failed: $ExcelName : $!"); closedir(TEMPLATEPATH); } #TO UPDATE THE EXCEL sub UpdateExcel(){ my $Excel = Win32::OLE->new('Excel.Application', 'Quit'); #Win32::OLE->GetActiveObject('Excel.Application') my $Book = $Excel->Workbooks->Open( {FileName => $ExcelName} ); my $GistSheet = $Book->Worksheets("$GIST_ESHEETNAME"); my $AutoGistUptoThisMonth = shift; foreach my $row (5..19) { $col = 14; $GistSheet->Cells($row,$col)->{'Value'}= $AutoGistUptoThisMonth->{$row}; } foreach my $row (5..19) { $col = 15; $GistSheet->Cells($row,$col)->{'Value'}= $AutoGistExcel{$row}; } $Book->Save; $Book->Close; } #TO SEND MAIL sub SendEmail(){ $msg = MIME::Lite->new( From =>$GIST_MAIL_FROM, To =>$GIST_MAIL_TO, CC =>$GIST_MAIL_CC, Subject =>$GIST_MAIL_SUBJECT.$MailDate, Type =>'text/html', Data => $MailContent ); $msg->attach( Type => 'application/vnd.ms-excel', Path => $ExcelName, Disposition => 'attachment' ); $msg->send('smtp',"mail.prodapt.com"); }