hmmm. Well, I used the following code as a test table (pardon the pun). It was written a while ago for someone on one of the AS Win32 Perl Mailing lists, and I didn't receive any errors. Machine is Win2K Advanced Server with AS Perl 5.6.1.629.
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Word';
$Win32::OLE::Warn = 3; # Fail on errors
my $Word = Win32::OLE->GetActiveObject('Word.Application')
|| Win32::OLE->new('Word.Application', 'Quit');
$Word->{'Visible'} = 1;
$Word->Documents->Add || die("Unable to create document ", Win32::OLE-
+>LastError());
$MyRange = $Word->ActiveDocument->Content;
$country_name = "Unknown"; # I'll fill this in later
# add a table that is the header portion, 1 column by 1 row
$Word->ActiveDocument->Tables->Add({
Range => $MyRange,
NumRows => 1,
NumColumns => 1,
});
$Word->Selection->{Style} = wdStyleHeading1;
$Word->Selection->TypeText ({ Text => "Hosts found in $country_name"})
+;
$Word->Selection->MoveRight({Count => 2});
$Word->Selection->TypeText ({ Text => "\n\n" }); #add another table
+that is two lines below the first
$Word->Selection->MoveDown({Count => 2});
# add another table that contains the data
# collapse the range so the starting and ending points are equal
$MyRange->Collapse({Direction => wdCollapseEnd});
$Word->ActiveDocument->Tables->Add({
Range => $MyRange,
NumRows => 1,
NumColumns => 4,
});
$Word->Selection->TypeText ({ Text => "end" });
print Win32::OLE->LastError();
my $Cell = $Word->ActiveDocument->Tables(2)->Cell(1,2)->Select();
$Word->Selection->TypeText ({ Text => "This is the new text"});
Update: Clean up - I removed a few lines that were unnecessary, and changed the ::Warn line to fail on errors.
C-. |