$row = 0;
#=================================
#Opens Excel to work on
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Variant;
use Win32::OLE::NLS qw(:LOCALE :DATE);
$Win32::OLE::Warn = 3; # Die on Errors.
Win32::OLE->new('Excel.Application')->{DisplayAlerts} = "False";
# OPENING INPUT FILE
#============================
my $Excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
+|| die "Oops, cannot start Excel"); #OPen Excel file
my $excelfile = 'c:\\test\\inputsheet.xls'; #File that is opened
+ to be edited
my $Book = $Excel->Workbooks->Open($excelfile);
+
my $Sheet = $Book->Worksheets("Example"); #Open sheet in docume
+nt
$Sheet->Activate();
#==========================================
#GET INPUT DATA FROM INPUTSHEET.XLS
#============================
$Sheet->Range("b$col ")->Select();
#==========================================
$rowi = 1; flag = 0; $refcode = " ";
while($sheetip->Range("b$row")->has_data)
#====
{
my $inputcode = $sheetip->range("b$rowi");
maxrow = $sheetop->range();
$rowop =1
for($rowop = 1; $rowop<maxrow;$rowop++)
$sheetop->range("b$row");
if (strcompare($inputcode,$currentcode)
{
$currentrowop = $rowop
$rowop = $maxrow + 1;
}
else
$rowop++;
}
if(flag = 0)
{
$refcode = $currentcode
}
else
flag = 1;
$sheetop->range(====
if($currentcode = $retcode)
$ sheetop->range ("$currentrowop")->{value}=$defect
else
$sheetop->range ("$currentrowop)->{value}=$defect;
$rowi++;
}
# OPENING OUTPUT FILE
#============================
my $Excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
+|| die "Oops, cannot start Excel"); #OPen Excel file
my $excelfile1 = 'c:\\test\\testmetrics.xls'; #File that is open
+ed to be edited
my $Book1 = $Excel->Workbooks->Open($excelfile1);
+
my $Sheetop = $Book->Worksheets("TQ-CETK"); #Open sheet in docu
+ment
$Sheetop->Activate();
#==========================================
$Book->Save(); #Saves updated file
$Excel->ActiveWorkbook->Close(0);#Closes file
$Excel->Quit(); #Stops excel from running
undef $Excel; #Cleanup
Win32::OLE->new("Excel.Application")->{DisplayAlerts} = "True";# Turn
+them back on (just in case)
# ................................ Close the input & output chann
+els ..........
# close (LOGFILE) ;
# close (OUTFILE) ;
20050119 Janitored by Corion: Added code tags, as per Writeup Formatting Tips. |