Hi Monks,
I have come across an excel spreadsheet that will not allow me to surpress Alerts. Normally this is not a problem. When I try to save out put and close book I get prompted to save changes. This never happens when using:
Excel->{DisplayAlerts} = 0;
I still get:
---------------------------
Microsoft Excel
---------------------------
A file named 'C:/lab/msd\H38C85441.txt' already exists in this locatio
+n. Do you want to replace it?
---------------------------
Yes No Cancel
---------------------------
#use strict;
use Getopt::Std;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Cwd;
$Win32::OLE::Warn = 3; # die on errors...
my $Excel = Win32::OLE->GetActiveObject
('Excel.Application') || Win32::OLE->new
('Excel.Application', 'Quit');
$Excel->{'Visible'} = 0; #0 is hidden, 1 is visible
$Excel->{DisplayAlerts} = "False"; #0 is hide alerts
# application or open new
opendir DIR , '.' or die "Could not open current dir: $!\n";
my @FilePattern = grep(/RTM001XLS/i, readdir DIR);
closedir DIR;
my $x="";
foreach $x (@FilePattern) {
my $file = $x;
my $out = (split(/\./,$file))[0];
print "in $file\n";
print "out $out\n";
my $dir = getcwd();
my $book = $dir . "\\" . $file;
my $new = $dir . "\\" . $out .".txt";
my $Book = $Excel->Workbooks->Open({FileName =>$book, ReadOnly => 1});
+ # open Excel file
my $Sheet = $Book->Worksheets(3);
$Sheet->Activate();
$Book->SaveAs({Filename => $new,
FileFormat => xlText});
$Book->Close;
$Excel->Quit();
#rename($file, "Original\\" . $file);
}
Anythoughts??? The only difference I know of between this and other XLS files I parse is this set of XLS files contain macros. Thanks in advance!!!