use warnings;
use strict;
# we are going be working with MS Word Objects
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Variant;
$word->{Displayalerts} = 0;
And run it you'lll see:
Global symbol "$word" requires explicit package name at strict.pl line
+ 8.
Execution of strict.pl aborted due to compilation errors.
Basically, you've done this before you've created your Word OLE instance. So move this line to after declaring $Word. Also variable names are case sensitive. You have $word->{Displayalerts} = 0; but the word object is $Word. I've reworked the code so far, removed some blank lines:
use warnings;
use strict;
# we are going be working with MS Word Objects
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Variant;
my $text = "";
my $directory = "c:\\";
opendir (DH, $directory) || die "can't opendir $directory: $!";
# we are working with Word application
my $Word = Win32::OLE->new('Word.Application', 'Quit');
$Word->{Displayalerts} = 0; # hide alerts
$Word->{Visible}= 0; # we don't need to see Word in an active window
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
$Excel->{Displayalerts} = 0; # hide alerts
my $excelfile = "E:\\assin\\foo\\sample.xlsx";
my $root = "E:\\assin\\foo";
my $doc = "E:\\assin\\foo\\Functional.doc";
I don't have the documents you're using. Much of what remains is an exercise for you to resolve. Your next problem is the for loops. You have:
# get the first table
my $table = $Word->ActiveDocument->Tables(1);
for($row=1;$row<3;$row++)
{
for($col=1;$col<3;$col++)
{
my $text = $table->Cell($row,$col)->Range->{Text};
$Sheet->Cells($row,$col)->{'Formula'}=$text;
}
There are some problems here. Firstly, you are missing a closing brace, you have two for loops with their opening braces and one closing brace.
for( $row = 1; $row < 3; $row++ ){
for( $col = 1; $col < 3; $col++ ){
my $text = $table->Cell($row,$col)->Range->{Text};
$Sheet->Cells($row,$col)->{'Formula'}=$text;
}
}
I suggest you do some reading and some research, then make these changes to your code and test it again with the documents you have. You should get some warnings about variables being declared but never used (e.g. @test). Properly indenting your code and using an editor with Syntax_highlighting helps to see where problems are.
"Thanks for suggestion but its no working."
It's not working isn't a helpful reply, you didn't mention what happened when you ran your program, what errors and warnings you encountered. To learn some more about what you're working with, and how to improve your posts here I suggest you read the following:
|